summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-12-29 07:01:41 +0000
committerGerrit Code Review <review@openstack.org>2016-12-29 07:01:41 +0000
commit509d04c108b3102112f06c9ae12a36129fe0d285 (patch)
treeab3ffc5c9dcd276e0ea4cdfdf88b3f16dc8420e2
parenta708d4fdf0e1095ffaf24803b6602228fdd8f825 (diff)
parentaef45c9d17118ee24ece01db2a95a064ac010e7c (diff)
Merge "clean up code"
-rwxr-xr-xovs_build/build-ovs-dpdk.sh2
-rwxr-xr-xovs_build/build-ovs-nsh-dpdk.sh2
-rw-r--r--ovs_build/dpdk_2.2.0/debian/changelog236
-rw-r--r--ovs_build/dpdk_2.2.0/debian/control81
-rw-r--r--ovs_build/dpdk_2.2.0/debian/copyright48
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk-dev.dirs1
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk-dev.install1
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk-doc.README.Debian52
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk-doc.dirs1
-rwxr-xr-xovs_build/dpdk_2.2.0/debian/dpdk-init251
-rwxr-xr-xovs_build/dpdk_2.2.0/debian/dpdk-sdk-env.sh3
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk.conf54
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk.dirs5
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk.init57
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk.install2
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk.interfaces13
-rw-r--r--ovs_build/dpdk_2.2.0/debian/dpdk.service12
-rw-r--r--ovs_build/dpdk_2.2.0/debian/libdpdk-dev.dirs1
-rw-r--r--ovs_build/dpdk_2.2.0/debian/libdpdk0.dirs1
-rw-r--r--ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.amd64580
-rw-r--r--ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.i386569
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/series44
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-01-app-testpmd-handle-SIGINT-and-SIGTERM.patch146
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-02-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch134
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-03-tools-fix-unbinding-failure-handling.patch35
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-04-tools-support-Python-3-in-bind-script.patch259
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-05-tools-support-binding-to-built-in-kernel-modules.patch75
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-06-eal-linux-support-built-in-kernel-modules.patch89
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-07-mempool-fix-leak-when-creation-fails.patch95
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-08-vhost-fix-leak-of-fds-and-mmaps.patch154
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-09-port-fix-crash-for-ring-writer-nodrop.patch80
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-10-port-fix-crash-for-ethdev-writer-nodrop.patch55
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-11-i40e-fix-overflow.patch45
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-12-i40e-fix-inverted-check-for-no-refcount.patch36
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-13-i40e-fix-VLAN-filtering.patch150
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-14-i40e-base-fix-missing-check-for-stopped-admin-queue.patch55
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-15-i40e-base-fix-driver-load-failure.patch44
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-16-fm10k-fix-VLAN-flag-in-scattered-Rx.patch38
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-17-pcap-fix-captured-frame-length.patch64
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-18-bonding-fix-detach-of-bonded-device.patch56
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-19-bonding-fix-detach-of-slave-devices.patch150
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-20-bonding-copy-entire-config-structure-in-mode-4.patch40
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-21-bonding-do-not-ignore-multicast-in-mode-4.patch59
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-22-bonding-fix-active-slaves-with-no-primary.patch49
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-23-bonding-do-not-activate-slave-twice.patch47
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-24-bonding-fix-crash-when-no-slave-device.patch42
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-25-virtio-fix-crash-in-statistics-functions.patch53
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-26-virtio-fix-descriptors-pointing-to-the-same-buffer.patch37
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-27-virtio-fix-restart.patch72
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-28-lpm-fix-allocation-of-an-existing-object.patch79
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-29-hash-fix-multi-process-support.patch260
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-30-hash-fix-allocation-of-an-existing-object.patch177
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-31-hash-fix-race-condition-at-creation.patch160
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-32-eal-fix-resource-leak.patch36
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch141
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-34-port-fix-ring-writer-buffer-overflow.patch54
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-35-port-fix-burst-size-mask-type.patch84
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-36-pci-identify-devices-not-managed-by-any-kernel-drive.patch34
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-37-pci-ignore-devices-already-managed-in-Linux-when-map.patch94
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-38-dpdk-dev-Memory-leak-when-adding-removing-vhost_user-ports.patch77
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-combined-shared-lib-abiversion.patch51
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-fix-doc-installpath.patch16
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-fix-library-linkage.patch33
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-fix-lpm-use-after-free-and-leak.patch75
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-fix-testpmd-without-xen.patch77
-rw-r--r--ovs_build/dpdk_2.2.0/debian/patches/ubuntu-fix-vhost-user-socket-permission.patch350
-rwxr-xr-xovs_build/dpdk_2.2.0/debian/rules159
-rw-r--r--ovs_build/dpdk_2.2.0/debian/tests/check-dpdk-supported-arch.sh12
-rw-r--r--ovs_build/dpdk_2.2.0/debian/tests/control8
-rw-r--r--ovs_build/dpdk_2.2.0/debian/tests/test-initscripts143
-rw-r--r--ovs_build/dpdk_2.2.0/debian/tests/test-linkage41
-rw-r--r--ovs_build/dpdk_2.2.0/debian/watch2
-rw-r--r--ovs_build/openvswitch-dpdk_2.5.90/debian/compat1
-rw-r--r--ovs_build/openvswitch-dpdk_2.5.90/debian/source/format1
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/automake.mk19
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/changelog3
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/compat1
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/control54
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/copyright716
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/copyright.in716
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/openvswitch-switch-dpdk.README.Debian42
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/openvswitch-switch-dpdk.postinst10
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/openvswitch-switch-dpdk.prerm10
-rwxr-xr-xovs_build/openvswitch-nsh-dpdk_2.5.90/debian/ovs-monitor-ipsec494
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/patches/ovs-ctl-dpdk.patch15
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/patches/series1
-rwxr-xr-xovs_build/openvswitch-nsh-dpdk_2.5.90/debian/rules68
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/source/format1
-rwxr-xr-xovs_build/openvswitch-nsh-dpdk_2.5.90/debian/tests/common23
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/tests/control4
-rwxr-xr-xovs_build/openvswitch-nsh-dpdk_2.5.90/debian/tests/kernel5
-rwxr-xr-xovs_build/openvswitch-nsh-dpdk_2.5.90/debian/tests/openflow7
-rwxr-xr-xovs_build/openvswitch-nsh-dpdk_2.5.90/debian/tests/openflow.py66
-rw-r--r--ovs_build/openvswitch-nsh-dpdk_2.5.90/debian/watch2
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/automake.mk (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/automake.mk)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/compat (renamed from ovs_build/dpdk_2.2.0/debian/compat)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/control (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/control)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/copyright (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/copyright)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/copyright.in (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/copyright.in)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/openvswitch-switch-dpdk.README.Debian (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/openvswitch-switch-dpdk.README.Debian)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/openvswitch-switch-dpdk.postinst (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/openvswitch-switch-dpdk.postinst)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/openvswitch-switch-dpdk.prerm (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/openvswitch-switch-dpdk.prerm)0
-rwxr-xr-xovs_build/openvswitch_2.6-dpdk_16.07/debian/ovs-monitor-ipsec (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/ovs-monitor-ipsec)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/patches/series)0
-rwxr-xr-xovs_build/openvswitch_2.6-dpdk_16.07/debian/rules (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/rules)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/source/format (renamed from ovs_build/dpdk_2.2.0/debian/source/format)0
-rwxr-xr-xovs_build/openvswitch_2.6-dpdk_16.07/debian/tests/common (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/tests/common)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/tests/control (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/tests/control)0
-rwxr-xr-xovs_build/openvswitch_2.6-dpdk_16.07/debian/tests/kernel (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/tests/kernel)0
-rwxr-xr-xovs_build/openvswitch_2.6-dpdk_16.07/debian/tests/openflow (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/tests/openflow)0
-rwxr-xr-xovs_build/openvswitch_2.6-dpdk_16.07/debian/tests/openflow.py (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/tests/openflow.py)0
-rw-r--r--ovs_build/openvswitch_2.6-dpdk_16.07/debian/watch (renamed from ovs_build/openvswitch-dpdk_2.5.90/debian/watch)0
112 files changed, 2 insertions, 8595 deletions
diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh
index 86225c5..3c05a83 100755
--- a/ovs_build/build-ovs-dpdk.sh
+++ b/ovs_build/build-ovs-dpdk.sh
@@ -66,7 +66,7 @@ cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git
66cd ${BUILD_HOME}; cp -r ovs ovs-dpdk 66cd ${BUILD_HOME}; cp -r ovs ovs-dpdk
67 67
68cd ovs-dpdk 68cd ovs-dpdk
69cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian . 69cp -r ${BUILD_SRC}/openvswitch_2.6-dpdk_16.07/debian .
70cat << EOF > debian/changelog 70cat << EOF > debian/changelog
71openvswitch-dpdk (${OVS_VER}-1) unstable; urgency=low 71openvswitch-dpdk (${OVS_VER}-1) unstable; urgency=low
72 [ Open vSwitch team ] 72 [ Open vSwitch team ]
diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh
index 11dce5d..e2d52e4 100755
--- a/ovs_build/build-ovs-nsh-dpdk.sh
+++ b/ovs_build/build-ovs-nsh-dpdk.sh
@@ -71,7 +71,7 @@ done
71cd ${BUILD_HOME}; cp -r ovs ovs-dpdk 71cd ${BUILD_HOME}; cp -r ovs ovs-dpdk
72 72
73cd ovs-dpdk 73cd ovs-dpdk
74cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian . 74cp -r ${BUILD_SRC}/openvswitch_2.6-dpdk_16.07/debian .
75cat << EOF > debian/changelog 75cat << EOF > debian/changelog
76openvswitch-dpdk (${OVS_VER}-1.nsh) unstable; urgency=low 76openvswitch-dpdk (${OVS_VER}-1.nsh) unstable; urgency=low
77 [ Open vSwitch team ] 77 [ Open vSwitch team ]
diff --git a/ovs_build/dpdk_2.2.0/debian/changelog b/ovs_build/dpdk_2.2.0/debian/changelog
deleted file mode 100644
index f359ba0..0000000
--- a/ovs_build/dpdk_2.2.0/debian/changelog
+++ /dev/null
@@ -1,236 +0,0 @@
1dpdk (2.2.0-0ubuntu8) xenial; urgency=medium
2
3 * d/p/ubuntu-backport-[36-37] fix virtio issues (LP: #1570195):
4 - don't let DPDK initialize virtio devices still in use by the kernel
5 - this avoids conflicts between kernel and dpdk usage of those devices
6 - an admin now has to unbind/bind devices as on physical hardware
7 - this is in the dpdk 16.04 release and delta can then be dropped
8 - d/dpdk-doc.README.Debian update for changes in virtio-pci handling
9 - d/dpdk.interfaces update for changes in virtio-pci handling
10 * d/p/ubuntu-backport-38... fix for memory leak (LP: #1570466):
11 - call vhost_destroy_device on removing vhost user ports to fix memory leak
12 - this likely is in the dpdk 16.07 release and delta can then be dropped
13 * d/p/ubuntu-fix-vhost-user-socket-permission.patch fox (LP: #1546565):
14 - when vhost_user sockets are created they are owner:group of the process
15 - the DPDK api to create those has no way to specify owner:group
16 - to fix that without breaking the API and potential workaround code in
17 consumers of the library like openvswitch 2.6 for example. This patch
18 adds an EAL commandline option to specify user:group created vhost_user
19 sockets should have.
20
21 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Mon, 25 Apr 2016 11:42:40 +0200
22
23dpdk (2.2.0-0ubuntu7) xenial; urgency=medium
24
25 * Increase max_map_count after setting huge pages (LP: #1507921):
26 - The default config of 65530 would cause issues as soon as about 64GB or
27 more are used as 2M huge pages for dpdk.
28 - Increase this value to base+2*#hugepages to avoid issues on huge systems.
29 * d/p/ubuntu-backport-[28-32,34-35] backports for stability (LP: #1568838):
30 - these will be in the 16.04 dpdk release, delta can then be dropped.
31 - 5 fixes that do not change api/behaviour but fix serious issues.
32 - 01 f82f705b lpm: fix allocation of an existing object
33 - 02 f9bd3342 hash: fix multi-process support
34 - 03 1aadacb5 hash: fix allocation of an existing object
35 - 04 5d7bfb73 hash: fix race condition at creation
36 - 05 fe671356 vfio: fix resource leak
37 - 06 356445f9 port: fix ring writer buffer overflow
38 - 07 52f7a5ae port: fix burst size mask type
39 * d/p/ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch
40 - this will likely be in dpdk release 16.07 and delta can then be dropped.
41 - fixes a crash on using fd's >1023 (LP: #1566874)
42 * d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch fix lpm_free (LP: #1569375)
43 - the old patches had an error freeing a pointer which had no meta data
44 - that lead to a crash on any lpm_free call
45 - folded into the fix that generally covers the lpm allocation and free
46 weaknesses already (also there this particular mistake was added)
47
48 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 12 Apr 2016 16:13:47 +0200
49
50dpdk (2.2.0-0ubuntu6) xenial; urgency=medium
51
52 * d/dpdk-init fix handling of multiple huge page sizes (LP: #1557532):
53 - dpdk-init now ensures non-default-hugepage-size mountpoints are
54 available as well.
55 - extra mountpoints are only created if requested in dpdk.conf and not yet
56 available (e.g. by the admin).
57 * d/dpdk-init fix issues with unassigned devices (LP: #1558485):
58 - dpdk-init no more checks /sys/.../driver of the device unconditionally
59 - removed the superfluous tr call in that path
60 * d/p/ubuntu-fix-lpm-use-after-free-and-leak.patch lpm/lpm6 (LP: #1554009):
61 - lpm/lpm6 fix use after free on lpm[6]_create
62 - lpm/lpm6 fix missing frees of rules_tbl substructure
63 - lpm/lpm6 fix missing free of lpm due to early exit
64 - make RTE_LOG messages of the failed allocation unique
65 * d/p/ubuntu-backport-[01-26] backport for stability (LP: #1559981):
66 - these will be in the following dpdk release and delta can then be dropped
67 - 26 fixes that do not change api/behaviour but fix serious issues
68 - 01 d3a274ce app/testpmd: handle SIGINT and SIGTERM
69 - 02 308df2bf Handle SIGINT and SIGTERM in l3fwd.
70 - 03 da82ee17 tools: fix unbinding failure handling
71 - 04 16c1814c tools: support Python 3 in bind script
72 - 05 bb9f4085 tools: support binding to built-in kernel modules
73 - 06 6e7caa1a eal/linux: support built-in kernel modules
74 - 07 86f36ff9 mempool: fix leak when creation fails
75 - 08 ca67ed28 vhost: fix leak of fds and mmaps
76 - 09 fa11a8a7 port: fix crash for ring writer nodrop
77 - 10 04f36690 port: fix crash for ethdev writer nodrop
78 - 11 c7a4ff80 i40e: fix overflow
79 - 12 097e920c i40e: fix inverted check for no refcount
80 - 13 330aa319 i40e: fix VLAN filtering
81 - 14 9f44dd3d i40e/base: fix missing check for stopped admin queue
82 - 15 8a880736 i40e/base: fix driver load failure
83 - 16 7656a546 fm10k: fix VLAN flag in scattered Rx
84 - 17 c6fb0e55 pcap: fix captured frame length
85 - 18 6e027237 bonding: fix detach of bonded device
86 - 19 df3e8ad7 bonding: fix detach of slave devices
87 - 20 786c990a bonding: copy entire config structure in mode 4
88 - 21 6698820b bonding: do not ignore multicast in mode 4
89 - 22 8997a10b bonding: fix active slaves with no primary
90 - 23 7a7122ed bonding: do not activate slave twice
91 - 24 2186fff3 bonding: fix crash when no slave device
92 - 25 c680a4a8 virtio: fix crash in statistics functions
93 - 26 3b1e3e4e virtio: fix descriptors pointing to the same buffer
94 * d/p/ubuntu-backport-27-virtio-fix-restart.patch for (LP: #1559981):
95 - fixing re-initializing the ethdev as openvswitch-dpdk does in the
96 virtio pmd driver by moving the detection of already being initialized
97 from virtio_dev_close to virtio_dev_start/stop
98 - this will be in the following dpdk release and delta can then be dropped
99 * d/rules build with debuginfo (LP: #1560839):
100 - exporting CFLAGS for all dpdk build processes
101 - dh_strip will automatically and create -dbgsym packages accordingly
102
103 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 23 Mar 2016 10:34:50 +0100
104
105dpdk (2.2.0-0ubuntu5) xenial; urgency=medium
106
107 * d/t/test-initscripts fix issues regarding 1G hugepages
108 - the dep8 was already taking care of 1G hugepages being not supported in
109 some environments. But it was failing when supported, but not enough
110 memory available.
111
112 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 09 Mar 2016 17:19:24 +0000
113
114dpdk (2.2.0-0ubuntu4) xenial; urgency=medium
115
116 * harden d/dpdk-init for configuration issues (LP: #1551601):
117 - detect and warn about bad bus specifications.
118 - detect and warn about incomplete device specifications.
119 - detect and warn about non existing pci IDs.
120 - avoid failing when working with unassigned devices.
121 - d/t/test-initscripts now testing various misconfigs.
122 - d/t/test-initscripts now also verifying service status.
123 * d/dpdk-init d/dpdk.conf now also support 1G hugepages (LP: #1551767):
124 - detect and warn if 1G pages are not available but configured.
125 - d/t/test-initscripts now also testing hugepage allocations.
126 - d/dpdk.conf has an option to drop caches to incease the likeliness of
127 successful 1G hugepage allocations (default off).
128 * d/rules replaced uname -m with DEB_HOST_GNU_CPU (LP: #1551796):
129 * fix testpmd to run without Xen environment (LP: #1551752):
130 - upstream discussion is slow, but we need a fix now. We can drop this
131 and change to the upstream solution when it is available.
132 * avoid errors due to missing modules (LP: #1554397):
133 - d/dpdk-init gracefully warns about missing modules.
134 - d/control now suggests linux-image-generic.
135 - d/dpdk.interfaces has a comment that makes the user aware.
136 * d/dpdk-init fix failure loading vfio-pci (LP: #1554214):
137 - d/dpdk-init no more converts "-" to "_" to make vfio-pci work
138 - d/dpdk.interfaces enhanced comments and updated examples
139 - d/dpdk-doc.README.debian got extra notes about using some modules
140 * unify whitespace/tabs in packaging and scripts
141 - tabs/spaces to just spaces in d/dpdk-init and d/dpdk.init.
142 - few remaining spaces to tabs in d/rules
143 * d/t/test-* now satisfy shellcheck
144 * d/* fix various comments and guides to be more readable
145 * d/dpdk-init and d/copyright updated copyright information
146
147 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 09 Mar 2016 08:48:58 +0000
148
149dpdk (2.2.0-0ubuntu3) xenial; urgency=medium
150
151 * Guard dep8 tests against non supported platforms (LP: #1551158):
152 - d/t/control now avoids failing due to "dependencies are unsatisfiable"
153 when fetching packages. The packages architecture restrictions got added
154 to avoid that.
155 - d/t/check-dpdk-supported-arch.sh is called by all DPDK tests to ensure
156 the platform is supported. If not it skips the test.
157
158 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Mon, 29 Feb 2016 11:03:39 +0000
159
160dpdk (2.2.0-0ubuntu2) xenial; urgency=medium
161
162 [ Christian Ehrhardt ]
163 * fix libdpdk.so library linking (LP: #1547517)
164 - libdpdk.so now has proper linkage information (was underlinked)
165 Note: this can be dropped when moving to DPDK 2.3 with linker script
166 instead of combined shared lib.
167 - remove reference to extra linkage needed when building against -ldpdk
168 in dpdk-doc README.
169 - add dep8 d/t/test-linkage to verify linking dpdk works as expected.
170 * d/control remove ${shlibs:Depends} on package with no linked binary
171 avoiding dpkg-gencontrol build warning about unknown ${shlibs:Depends}.
172 * d/dpdk-doc.README.debian fix path to DPDK build environment variable
173 helper script in README file.
174 * Update VCS Info in d/control to include our repositories.
175
176 [ James Page ]
177 * d/*: wrap-and-sort.
178 * d/control: Trim trailing whitespace.
179
180 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 25 Feb 2016 16:07:21 +0000
181
182dpdk (2.2.0-0ubuntu1) xenial; urgency=low
183
184 * Merge from Upstream to DPDK 2.2
185 Remaining changes:
186 - Set soabi for the combined shared library
187 * Drop changes:
188 - configuring RTE_LIBNAME to dpdk as it is the upstream default now
189 - enabled formerly non building components as they build properly in 2.2
190 - d/p/ubunut-avoid-texlive-fonts-extra, d/control:
191 Replace use of DejaVuSansMono is no more needed as upstream changed the
192 font. Thereby we can drop our delta.
193 - d/p/ubuntu-fix-gcc5-ftbs.patch no more needed with DPDK 2.2
194 * Added changes
195 - Disable CONFIG_RTE_NEXT_ABI as required for packaging (git 506f51cc)
196 - Enable LIBRTE_PMD_PCAP which is useful for some DPDK testcase examples
197 this adds a build dependency to libpcap-dev
198 - Fully support DH_VERBOSE for build debugging convenience
199 - adapt to new make infrastructure of dpdk 2.2
200 - d/README.debian: convert into d/dpdk-doc.README.debian
201 - d/dpdk-doc.README.debian: update recommendations about sdk env variables
202 - d/dpdk-sdk-env.sh: now deployed in /usr/share/dpdk to be opt in
203 - enable XEN support for dpdk (LP: #1521289).
204
205 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 17 Feb 2016 09:29:28 +0100
206
207dpdk (2.0.0-0ubuntu3) xenial; urgency=medium
208
209 * Only generate HTML documentation, easing backports to 14.04 and
210 reducing the time to build and size of the -doc package (LP: #1524700).
211
212 -- James Page <james.page@ubuntu.com> Thu, 10 Dec 2015 10:23:51 +0000
213
214dpdk (2.0.0-0ubuntu2) xenial; urgency=low
215
216 * d/p/ubunut-avoid-texlive-fonts-extra, d/control:
217 Replace use of DejaVuSansMono by courier and drop dependency on the
218 texlive-fonts-extra package (which is in universe).
219 * d/watch added to allow use of uscan to check for upstream releases.
220 * d/dpdk-init: fix error if bash variables could not be resolved that
221 appeared as "[: -gt: unexpected operator" (had no functional impact)
222 * d/dpdk-init:
223 Replace use of head and cut (in /usr/bin) commands with sed (in /bin)
224 while also adding /usr/bin to the PATH used on direct /etc/init.d/dpdk
225 invocation. The PATH is only updated to be on the safe side, there
226 should be no other commands from /usr/bin used (LP: #1516543).
227 * d/t/test-mountpoint: add dep8 test to cover the issue of LP #1517075.
228 * d/dpdk-dev.install: Copy the SDK makefiles into place (LP: #1517075).
229
230 -- Stefan Bader <stefan.bader@canonical.com> Tue, 17 Nov 2015 11:50:15 +0100
231
232dpdk (2.0.0-0ubuntu1) wily; urgency=low
233
234 * Initial release (LP: #1487538)
235
236 -- Stefan Bader <stefan.bader@canonical.com> Mon, 01 Jun 2015 18:46:38 +0200
diff --git a/ovs_build/dpdk_2.2.0/debian/control b/ovs_build/dpdk_2.2.0/debian/control
deleted file mode 100644
index 60cf704..0000000
--- a/ovs_build/dpdk_2.2.0/debian/control
+++ /dev/null
@@ -1,81 +0,0 @@
1Source: dpdk
2Priority: optional
3Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
4Build-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
18Standards-Version: 3.9.6
19Section: libs
20Homepage: http://www.dpdk.org
21Vcs-Original-Git: git://dpdk.org/dpdk
22Vcs-Original-Browser: http://www.dpdk.org/browse/dpdk/refs/
23Vcs-Git: https://git.launchpad.net/~ubuntu-server/dpdk
24Vcs-Browser: https://code.launchpad.net/~ubuntu-server/dpdk/+git/dpdk
25
26Package: dpdk
27Section: devel
28Architecture: amd64 i386
29Depends: libdpdk0 (= ${binary:Version}),
30 lsb-base (>= 3.2-14),
31 ${misc:Depends},
32 ${python:Depends},
33 ${shlibs:Depends}
34Suggests: linux-image-generic
35Description: 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
40Package: dpdk-dev
41Section: devel
42Architecture: amd64 i386
43Depends: libdpdk0 (= ${binary:Version}), ${misc:Depends}
44Description: 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
50Package: dpdk-doc
51Section: doc
52Architecture: all
53Depends: libjs-jquery, libjs-underscore, ${misc:Depends}
54Description: 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
59Package: libdpdk0
60Architecture: amd64 i386
61Multi-Arch: same
62Pre-Depends: ${misc:Pre-Depends}
63Depends: ${misc:Depends}, ${shlibs:Depends}
64Description: 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
70Package: libdpdk-dev
71Section: libdevel
72Architecture: amd64 i386
73Multi-Arch: same
74Pre-Depends: ${misc:Pre-Depends}
75Depends: libdpdk0 (= ${binary:Version}), ${misc:Depends}
76Description: 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.
diff --git a/ovs_build/dpdk_2.2.0/debian/copyright b/ovs_build/dpdk_2.2.0/debian/copyright
deleted file mode 100644
index 521df60..0000000
--- a/ovs_build/dpdk_2.2.0/debian/copyright
+++ /dev/null
@@ -1,48 +0,0 @@
1Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2Upstream-Name: dpdk
3Source: http://dpdk.org
4
5Files: *
6Copyright: 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.
14License: 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
34Files: debian/*
35Copyright: 2015 Canonical Ltd. <stefan.bader@canonical.com>
36Copyright: 2015, 2016 Canonical Ltd. <christian.ehrhardt@canonical.com>
37License: 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/>.
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk-dev.dirs b/ovs_build/dpdk_2.2.0/debian/dpdk-dev.dirs
deleted file mode 100644
index bdac81a..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk-dev.dirs
+++ /dev/null
@@ -1 +0,0 @@
1usr/share/dpdk
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk-dev.install b/ovs_build/dpdk_2.2.0/debian/dpdk-dev.install
deleted file mode 100644
index f6eba19..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk-dev.install
+++ /dev/null
@@ -1 +0,0 @@
1debian/dpdk-sdk-env.sh /usr/share/dpdk/
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk-doc.README.Debian b/ovs_build/dpdk_2.2.0/debian/dpdk-doc.README.Debian
deleted file mode 100644
index 669bf39..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk-doc.README.Debian
+++ /dev/null
@@ -1,52 +0,0 @@
1dpdk for Debian
2---------------
3
4This package is currently compiled for the lowest possible CPU requirements.
5Which still requires at least SSE3 to be supported by the CPU.
6
7dpdk (runtime) / libdpdk0:
8
9For runtime /etc/dpdk/interfaces holds a list of PCI devices to be assigned
10to DPDK compatible drivers and /etc/dpdk/dpdk.conf allows one to define the
11number of hugepages to be reserved at boot.
12The runtime environment is not required to build applications that use
13DPDK but if those applications get packaged they should depend on the
14runtime.
15
16Since DPDK technically would be able to use all of your compatible card/driver
17combination it is required that you take care of blacklisting / whitelisting
18network cards to tell dpdk which it has to to initialize (especially true for
19virtio-pci as the normal kernel driver is considered compatible).
20
21If you are working with virtio-pci network cards it isn't a hard requirement to
22assign them to a dpdk compatible userspace driver like uio_pci_generic. But you
23have to at least unbind them from the default kernel driver (virtio-pci) to
24avoid bugs by dpdk and the kernel working on them simultaneously. It is
25recommended to reassign them to dpdk compatible drivers using
26/etc/dpdk/interfaces (just as you would with any physical card).
27
28libdpdk0 contains the shared object needed to run a program in terms of symbol
29resolution, but none of the other runtime environment pieces.
30
31dpdk-dev / libdpdk-dev:
32
33The minimum requirement for developing external applications is libdpdk-dev,
34which brings the headers and library files.
35
36In dpdk-dev is the upstream makefile environment. Sample applications, which
37are shipped in dpdk-doc, are providing makefiles.
38Those makefiles need to find the dpdk build system. To do so they need some
39environment 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"
43Those can be set by the user to overwrite with a custom path/config. If no
44custom environment is used it is recommended to source the file
45/usr/share/dpdk/dpdk-sdk-env.sh which comes with dpdk-dev.
46If the paths ever change or there will be more/less variables needed to build
47against dpdk-dev that file will be adjusted for you.
48
49Alternatively /usr/include/dpdk/rte_config.h has to be pre-included:
50CFLAGS += -I/usr/include/dpdk -irte_config.h
51
52 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 04 Feb 2016 09:16:11 +0100
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk-doc.dirs b/ovs_build/dpdk_2.2.0/debian/dpdk-doc.dirs
deleted file mode 100644
index fcd9dfe..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk-doc.dirs
+++ /dev/null
@@ -1 +0,0 @@
1usr/share/doc/dpdk
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk-init b/ovs_build/dpdk_2.2.0/debian/dpdk-init
deleted file mode 100755
index 86eda2c..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk-init
+++ /dev/null
@@ -1,251 +0,0 @@
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#
21set -e
22
23DPDK_BIND="/sbin/dpdk_nic_bind"
24DPDK_INTERF="/etc/dpdk/interfaces"
25
26
27# pagesize supports [G|g]/[M|m]/[K|k]
28get_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
49get_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
55get_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#
117mount_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#
162setup_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#
184bind_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
231case "$1" in
232start)
233 mount_hugetlbfs
234 setup_hugepages
235 bind_interfaces
236 ;;
237stop)
238 ;;
239reload|force-reload)
240 setup_hugepages
241 bind_interfaces
242 ;;
243status)
244 $DPDK_BIND --status
245 ;;
246*)
247 echo "Usage: $0 {start|stop|reload|force-reload|status}"
248 exit 1
249 ;;
250esac
251
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk-sdk-env.sh b/ovs_build/dpdk_2.2.0/debian/dpdk-sdk-env.sh
deleted file mode 100755
index 2fc5570..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk-sdk-env.sh
+++ /dev/null
@@ -1,3 +0,0 @@
1export RTE_TARGET="$(uname -m)-default-linuxapp-gcc"
2export RTE_SDK="/usr/share/dpdk/"
3export RTE_INCLUDE="/usr/include/dpdk"
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk.conf b/ovs_build/dpdk_2.2.0/debian/dpdk.conf
deleted file mode 100644
index fb4572d..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk.conf
+++ /dev/null
@@ -1,54 +0,0 @@
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#
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk.dirs b/ovs_build/dpdk_2.2.0/debian/dpdk.dirs
deleted file mode 100644
index 29ca563..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk.dirs
+++ /dev/null
@@ -1,5 +0,0 @@
1etc/dpdk
2lib/dpdk
3sbin
4usr/bin
5usr/lib/dpdk
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk.init b/ovs_build/dpdk_2.2.0/debian/dpdk.init
deleted file mode 100644
index 921c38b..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk.init
+++ /dev/null
@@ -1,57 +0,0 @@
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
12set -e
13
14PATH="/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
23error=0
24case "$1" in
25start)
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 ;;
36stop)
37 ;;
38restart|force-reload)
39 ;;
40status)
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 ;;
54esac
55
56exit 0
57
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk.install b/ovs_build/dpdk_2.2.0/debian/dpdk.install
deleted file mode 100644
index 24c8d45..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk.install
+++ /dev/null
@@ -1,2 +0,0 @@
1debian/dpdk-init lib/dpdk/
2debian/dpdk.conf etc/dpdk/
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk.interfaces b/ovs_build/dpdk_2.2.0/debian/dpdk.interfaces
deleted file mode 100644
index 470a40e..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk.interfaces
+++ /dev/null
@@ -1,13 +0,0 @@
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
diff --git a/ovs_build/dpdk_2.2.0/debian/dpdk.service b/ovs_build/dpdk_2.2.0/debian/dpdk.service
deleted file mode 100644
index 09ef8be..0000000
--- a/ovs_build/dpdk_2.2.0/debian/dpdk.service
+++ /dev/null
@@ -1,12 +0,0 @@
1[Unit]
2Description=DPDK runtime environment
3DefaultDependencies=false
4After=network-pre.target local-fs.target
5
6[Service]
7Type=oneshot
8RemainAfterExit=yes
9ExecStart=/lib/dpdk/dpdk-init start
10
11[Install]
12WantedBy=multi-user.target
diff --git a/ovs_build/dpdk_2.2.0/debian/libdpdk-dev.dirs b/ovs_build/dpdk_2.2.0/debian/libdpdk-dev.dirs
deleted file mode 100644
index e43b95c..0000000
--- a/ovs_build/dpdk_2.2.0/debian/libdpdk-dev.dirs
+++ /dev/null
@@ -1 +0,0 @@
1usr/include
diff --git a/ovs_build/dpdk_2.2.0/debian/libdpdk0.dirs b/ovs_build/dpdk_2.2.0/debian/libdpdk0.dirs
deleted file mode 100644
index 6845771..0000000
--- a/ovs_build/dpdk_2.2.0/debian/libdpdk0.dirs
+++ /dev/null
@@ -1 +0,0 @@
1usr/lib
diff --git a/ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.amd64 b/ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.amd64
deleted file mode 100644
index 743b1e9..0000000
--- a/ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.amd64
+++ /dev/null
@@ -1,580 +0,0 @@
1libdpdk.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
diff --git a/ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.i386 b/ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.i386
deleted file mode 100644
index 7d450aa..0000000
--- a/ovs_build/dpdk_2.2.0/debian/libdpdk0.symbols.i386
+++ /dev/null
@@ -1,569 +0,0 @@
1libdpdk.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
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/series b/ovs_build/dpdk_2.2.0/debian/patches/series
deleted file mode 100644
index 28d08d4..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/series
+++ /dev/null
@@ -1,44 +0,0 @@
1ubuntu-fix-doc-installpath.patch
2ubuntu-combined-shared-lib-abiversion.patch
3ubuntu-fix-library-linkage.patch
4ubuntu-fix-testpmd-without-xen.patch
5ubuntu-fix-lpm-use-after-free-and-leak.patch
6ubuntu-backport-01-app-testpmd-handle-SIGINT-and-SIGTERM.patch
7ubuntu-backport-02-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch
8ubuntu-backport-03-tools-fix-unbinding-failure-handling.patch
9ubuntu-backport-04-tools-support-Python-3-in-bind-script.patch
10ubuntu-backport-05-tools-support-binding-to-built-in-kernel-modules.patch
11ubuntu-backport-06-eal-linux-support-built-in-kernel-modules.patch
12ubuntu-backport-07-mempool-fix-leak-when-creation-fails.patch
13ubuntu-backport-08-vhost-fix-leak-of-fds-and-mmaps.patch
14ubuntu-backport-09-port-fix-crash-for-ring-writer-nodrop.patch
15ubuntu-backport-10-port-fix-crash-for-ethdev-writer-nodrop.patch
16ubuntu-backport-11-i40e-fix-overflow.patch
17ubuntu-backport-12-i40e-fix-inverted-check-for-no-refcount.patch
18ubuntu-backport-13-i40e-fix-VLAN-filtering.patch
19ubuntu-backport-14-i40e-base-fix-missing-check-for-stopped-admin-queue.patch
20ubuntu-backport-15-i40e-base-fix-driver-load-failure.patch
21ubuntu-backport-16-fm10k-fix-VLAN-flag-in-scattered-Rx.patch
22ubuntu-backport-17-pcap-fix-captured-frame-length.patch
23ubuntu-backport-18-bonding-fix-detach-of-bonded-device.patch
24ubuntu-backport-19-bonding-fix-detach-of-slave-devices.patch
25ubuntu-backport-20-bonding-copy-entire-config-structure-in-mode-4.patch
26ubuntu-backport-21-bonding-do-not-ignore-multicast-in-mode-4.patch
27ubuntu-backport-22-bonding-fix-active-slaves-with-no-primary.patch
28ubuntu-backport-23-bonding-do-not-activate-slave-twice.patch
29ubuntu-backport-24-bonding-fix-crash-when-no-slave-device.patch
30ubuntu-backport-25-virtio-fix-crash-in-statistics-functions.patch
31ubuntu-backport-26-virtio-fix-descriptors-pointing-to-the-same-buffer.patch
32ubuntu-backport-27-virtio-fix-restart.patch
33ubuntu-backport-28-lpm-fix-allocation-of-an-existing-object.patch
34ubuntu-backport-29-hash-fix-multi-process-support.patch
35ubuntu-backport-30-hash-fix-allocation-of-an-existing-object.patch
36ubuntu-backport-31-hash-fix-race-condition-at-creation.patch
37ubuntu-backport-32-eal-fix-resource-leak.patch
38ubuntu-backport-33-vhost-user-add-error-handling-for-fd-1023.patch
39ubuntu-backport-34-port-fix-ring-writer-buffer-overflow.patch
40ubuntu-backport-35-port-fix-burst-size-mask-type.patch
41ubuntu-backport-36-pci-identify-devices-not-managed-by-any-kernel-drive.patch
42ubuntu-backport-37-pci-ignore-devices-already-managed-in-Linux-when-map.patch
43ubuntu-backport-38-dpdk-dev-Memory-leak-when-adding-removing-vhost_user-ports.patch
44ubuntu-fix-vhost-user-socket-permission.patch
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-01-app-testpmd-handle-SIGINT-and-SIGTERM.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-01-app-testpmd-handle-SIGINT-and-SIGTERM.patch
deleted file mode 100644
index 9c8e86a..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-01-app-testpmd-handle-SIGINT-and-SIGTERM.patch
+++ /dev/null
@@ -1,146 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From d3a274ce9dee28118b8647e0db72ef0f4b6a6323 Mon Sep 17 00:00:00 2001
8From: Zhihong Wang <zhihong.wang@intel.com>
9Date: Wed, 30 Dec 2015 16:59:49 -0500
10Subject: [PATCH] app/testpmd: handle SIGINT and SIGTERM
11
12Handle SIGINT and SIGTERM in testpmd.
13
14Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
15Acked-by: Michael Qiu <michael.qiu@intel.com>
16---
17 app/test-pmd/cmdline.c | 20 +++++++++++++-------
18 app/test-pmd/testpmd.c | 39 +++++++++++++++++++++++++++++++++------
19 app/test-pmd/testpmd.h | 1 +
20 3 files changed, 47 insertions(+), 13 deletions(-)
21
22Index: dpdk/app/test-pmd/cmdline.c
23===================================================================
24--- dpdk.orig/app/test-pmd/cmdline.c
25+++ dpdk/app/test-pmd/cmdline.c
26@@ -90,6 +90,8 @@
27
28 #include "testpmd.h"
29
30+static struct cmdline *testpmd_cl;
31+
32 static void cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue);
33
34 #ifdef RTE_NIC_BYPASS
35@@ -9778,17 +9780,21 @@ cmdline_parse_ctx_t main_ctx[] = {
36 void
37 prompt(void)
38 {
39- struct cmdline *cl;
40-
41 /* initialize non-constant commands */
42 cmd_set_fwd_mode_init();
43
44- cl = cmdline_stdin_new(main_ctx, "testpmd> ");
45- if (cl == NULL) {
46+ testpmd_cl = cmdline_stdin_new(main_ctx, "testpmd> ");
47+ if (testpmd_cl == NULL)
48 return;
49- }
50- cmdline_interact(cl);
51- cmdline_stdin_exit(cl);
52+ cmdline_interact(testpmd_cl);
53+ cmdline_stdin_exit(testpmd_cl);
54+}
55+
56+void
57+prompt_exit(void)
58+{
59+ if (testpmd_cl != NULL)
60+ cmdline_quit(testpmd_cl);
61 }
62
63 static void
64Index: dpdk/app/test-pmd/testpmd.c
65===================================================================
66--- dpdk.orig/app/test-pmd/testpmd.c
67+++ dpdk/app/test-pmd/testpmd.c
68@@ -1569,13 +1569,16 @@ pmd_test_exit(void)
69 if (test_done == 0)
70 stop_packet_forwarding();
71
72- FOREACH_PORT(pt_id, ports) {
73- printf("Stopping port %d...", pt_id);
74- fflush(stdout);
75- rte_eth_dev_close(pt_id);
76- printf("done\n");
77+ if (ports != NULL) {
78+ no_link_check = 1;
79+ FOREACH_PORT(pt_id, ports) {
80+ printf("\nShutting down port %d...\n", pt_id);
81+ fflush(stdout);
82+ stop_port(pt_id);
83+ close_port(pt_id);
84+ }
85 }
86- printf("bye...\n");
87+ printf("\nBye...\n");
88 }
89
90 typedef void (*cmd_func_t)(void);
91@@ -1983,12 +1986,35 @@ init_port(void)
92 ports[pid].enabled = 1;
93 }
94
95+static void
96+force_quit(void)
97+{
98+ pmd_test_exit();
99+ prompt_exit();
100+}
101+
102+static void
103+signal_handler(int signum)
104+{
105+ if (signum == SIGINT || signum == SIGTERM) {
106+ printf("\nSignal %d received, preparing to exit...\n",
107+ signum);
108+ force_quit();
109+ /* exit with the expected status */
110+ signal(signum, SIG_DFL);
111+ kill(getpid(), signum);
112+ }
113+}
114+
115 int
116 main(int argc, char** argv)
117 {
118 int diag;
119 uint8_t port_id;
120
121+ signal(SIGINT, signal_handler);
122+ signal(SIGTERM, signal_handler);
123+
124 diag = rte_eal_init(argc, argv);
125 if (diag < 0)
126 rte_panic("Cannot init EAL\n");
127@@ -2040,6 +2066,7 @@ main(int argc, char** argv)
128 start_packet_forwarding(0);
129 printf("Press enter to exit\n");
130 rc = read(0, &c, 1);
131+ pmd_test_exit();
132 if (rc < 0)
133 return 1;
134 }
135Index: dpdk/app/test-pmd/testpmd.h
136===================================================================
137--- dpdk.orig/app/test-pmd/testpmd.h
138+++ dpdk/app/test-pmd/testpmd.h
139@@ -462,6 +462,7 @@ unsigned int parse_item_list(char* str,
140 unsigned int *parsed_items, int check_unique_values);
141 void launch_args_parse(int argc, char** argv);
142 void prompt(void);
143+void prompt_exit(void);
144 void nic_stats_display(portid_t port_id);
145 void nic_stats_clear(portid_t port_id);
146 void nic_xstats_display(portid_t port_id);
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-02-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-02-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch
deleted file mode 100644
index acf23b7..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-02-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch
+++ /dev/null
@@ -1,134 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From 308df2bfba3d238fc1d2d16cc10c84681803b408 Mon Sep 17 00:00:00 2001
8From: Zhihong Wang <zhihong.wang@intel.com>
9Date: Wed, 30 Dec 2015 16:59:51 -0500
10Subject: [PATCH] examples/l3fwd: handle SIGINT and SIGTERM
11
12Handle SIGINT and SIGTERM in l3fwd.
13
14Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
15Acked-by: Michael Qiu <michael.qiu@intel.com>
16Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
17---
18 examples/l3fwd/main.c | 46 ++++++++++++++++++++++++++++++++++++++++++----
19 1 file changed, 42 insertions(+), 4 deletions(-)
20
21diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
22index 5b0c2dd..21a5782 100644
23--- a/examples/l3fwd/main.c
24+++ b/examples/l3fwd/main.c
25@@ -41,6 +41,8 @@
26 #include <stdarg.h>
27 #include <errno.h>
28 #include <getopt.h>
29+#include <signal.h>
30+#include <stdbool.h>
31
32 #include <rte_common.h>
33 #include <rte_vect.h>
34@@ -75,6 +77,8 @@
35 #include <cmdline_parse.h>
36 #include <cmdline_parse_etheraddr.h>
37
38+static volatile bool force_quit;
39+
40 #define APP_LOOKUP_EXACT_MATCH 0
41 #define APP_LOOKUP_LPM 1
42 #define DO_RFC_1812_CHECKS
43@@ -1553,7 +1557,7 @@ main_loop(__attribute__((unused)) void *dummy)
44 portid, queueid);
45 }
46
47- while (1) {
48+ while (!force_quit) {
49
50 cur_tsc = rte_rdtsc();
51
52@@ -1781,6 +1785,8 @@ main_loop(__attribute__((unused)) void *dummy)
53
54 }
55 }
56+
57+ return 0;
58 }
59
60 static int
61@@ -2516,8 +2522,12 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)
62 printf("\nChecking link status");
63 fflush(stdout);
64 for (count = 0; count <= MAX_CHECK_TIME; count++) {
65+ if (force_quit)
66+ return;
67 all_ports_up = 1;
68 for (portid = 0; portid < port_num; portid++) {
69+ if (force_quit)
70+ return;
71 if ((port_mask & (1 << portid)) == 0)
72 continue;
73 memset(&link, 0, sizeof(link));
74@@ -2559,6 +2569,16 @@ check_all_ports_link_status(uint8_t port_num, uint32_t port_mask)
75 }
76 }
77
78+static void
79+signal_handler(int signum)
80+{
81+ if (signum == SIGINT || signum == SIGTERM) {
82+ printf("\n\nSignal %d received, preparing to exit...\n",
83+ signum);
84+ force_quit = true;
85+ }
86+}
87+
88 int
89 main(int argc, char **argv)
90 {
91@@ -2579,6 +2599,10 @@ main(int argc, char **argv)
92 argc -= ret;
93 argv += ret;
94
95+ force_quit = false;
96+ signal(SIGINT, signal_handler);
97+ signal(SIGTERM, signal_handler);
98+
99 /* pre-init dst MACs for all ports to 02:00:00:00:00:xx */
100 for (portid = 0; portid < RTE_MAX_ETHPORTS; portid++) {
101 dest_eth_addr[portid] = ETHER_LOCAL_ADMIN_ADDR + ((uint64_t)portid << 40);
102@@ -2733,12 +2757,26 @@ main(int argc, char **argv)
103
104 check_all_ports_link_status((uint8_t)nb_ports, enabled_port_mask);
105
106+ ret = 0;
107 /* launch per-lcore init on every lcore */
108 rte_eal_mp_remote_launch(main_loop, NULL, CALL_MASTER);
109 RTE_LCORE_FOREACH_SLAVE(lcore_id) {
110- if (rte_eal_wait_lcore(lcore_id) < 0)
111- return -1;
112+ if (rte_eal_wait_lcore(lcore_id) < 0) {
113+ ret = -1;
114+ break;
115+ }
116 }
117
118- return 0;
119+ /* stop ports */
120+ for (portid = 0; portid < nb_ports; portid++) {
121+ if ((enabled_port_mask & (1 << portid)) == 0)
122+ continue;
123+ printf("Closing port %d...", portid);
124+ rte_eth_dev_stop(portid);
125+ rte_eth_dev_close(portid);
126+ printf(" Done\n");
127+ }
128+ printf("Bye...\n");
129+
130+ return ret;
131 }
132--
1332.7.3
134
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-03-tools-fix-unbinding-failure-handling.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-03-tools-fix-unbinding-failure-handling.patch
deleted file mode 100644
index c50ad3f..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-03-tools-fix-unbinding-failure-handling.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From da82ee17e6ea99bf2931383ac33b0caccaaaefce Mon Sep 17 00:00:00 2001
8From: Jeff Shaw <jeffrey.b.shaw@intel.com>
9Date: Mon, 8 Feb 2016 16:33:46 -0800
10Subject: [PATCH] tools: fix unbinding failure handling
11
12We should call sys.exit(), not divide sys by exit().
13
14Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
15Acked-by: Bruce Richardson <bruce.richardson@intel.com>
16---
17 tools/dpdk_nic_bind.py | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/tools/dpdk_nic_bind.py b/tools/dpdk_nic_bind.py
21index f02454e..a1923c5 100755
22--- a/tools/dpdk_nic_bind.py
23+++ b/tools/dpdk_nic_bind.py
24@@ -317,7 +317,7 @@ def unbind_one(dev_id, force):
25 f = open(filename, "a")
26 except:
27 print "Error: unbind failed for %s - Cannot open %s" % (dev_id, filename)
28- sys/exit(1)
29+ sys.exit(1)
30 f.write(dev_id)
31 f.close()
32
33--
342.7.3
35
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-04-tools-support-Python-3-in-bind-script.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-04-tools-support-Python-3-in-bind-script.patch
deleted file mode 100644
index b3ccd6a..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-04-tools-support-Python-3-in-bind-script.patch
+++ /dev/null
@@ -1,259 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From 16c1814c802c205f6d3c32e3d3d10de9f87e7f22 Mon Sep 17 00:00:00 2001
8From: Dawid Jurczak <dawid_jurek@vp.pl>
9Date: Wed, 27 Jan 2016 20:59:44 +0100
10Subject: [PATCH] tools: support Python 3 in bind script
11
12This patch fixes syntax errors during binding ethernet device
13on systems where Python 3 is default.
14Backward compatibility with Python 2 is preserved.
15
16Signed-off-by: Dawid Jurczak <dawid_jurek@vp.pl>
17---
18 tools/dpdk_nic_bind.py | 74 +++++++++++++++++++++++++-------------------------
19 1 file changed, 37 insertions(+), 37 deletions(-)
20
21diff --git a/tools/dpdk_nic_bind.py b/tools/dpdk_nic_bind.py
22index a1923c5..dfefdae 100755
23--- a/tools/dpdk_nic_bind.py
24+++ b/tools/dpdk_nic_bind.py
25@@ -54,7 +54,7 @@ args = []
26 def usage():
27 '''Print usage information for the program'''
28 argv0 = basename(sys.argv[0])
29- print """
30+ print ("""
31 Usage:
32 ------
33
34@@ -110,7 +110,7 @@ To unbind 0000:01:00.0 from using any driver
35 To bind 0000:02:00.0 and 0000:02:00.1 to the ixgbe kernel driver
36 %(argv0)s -b ixgbe 02:00.0 02:00.1
37
38- """ % locals() # replace items from local variables
39+ """ % locals()) # replace items from local variables
40
41 # This is roughly compatible with check_output function in subprocess module
42 # which is only available in python 2.7.
43@@ -156,7 +156,7 @@ def check_modules():
44 '''Checks that igb_uio is loaded'''
45 global dpdk_drivers
46
47- fd = file("/proc/modules")
48+ fd = open("/proc/modules", 'r')
49 loaded_mods = fd.readlines()
50 fd.close()
51
52@@ -176,10 +176,10 @@ def check_modules():
53 # check if we have at least one loaded module
54 if True not in [mod["Found"] for mod in mods] and b_flag is not None:
55 if b_flag in dpdk_drivers:
56- print "Error - no supported modules(DPDK driver) are loaded"
57+ print ("Error - no supported modules(DPDK driver) are loaded")
58 sys.exit(1)
59 else:
60- print "Warning - no supported modules(DPDK driver) are loaded"
61+ print ("Warning - no supported modules(DPDK driver) are loaded")
62
63 # change DPDK driver list to only contain drivers that are loaded
64 dpdk_drivers = [mod["Name"] for mod in mods if mod["Found"]]
65@@ -198,7 +198,7 @@ def get_pci_device_details(dev_id):
66 for line in extra_info:
67 if len(line) == 0:
68 continue
69- name, value = line.split("\t", 1)
70+ name, value = line.decode().split("\t", 1)
71 name = name.strip(":") + "_str"
72 device[name] = value
73 # check for a unix interface name
74@@ -234,7 +234,7 @@ def get_nic_details():
75 dev["Device"] = int(dev["Device"],16)
76 devices[dev["Slot"]] = dict(dev) # use dict to make copy of dev
77 else:
78- name, value = dev_line.split("\t", 1)
79+ name, value = dev_line.decode().split("\t", 1)
80 dev[name.rstrip(":")] = value
81
82 # check what is the interface if any for an ssh connection if
83@@ -243,17 +243,17 @@ def get_nic_details():
84 route = check_output(["ip", "-o", "route"])
85 # filter out all lines for 169.254 routes
86 route = "\n".join(filter(lambda ln: not ln.startswith("169.254"),
87- route.splitlines()))
88+ route.decode().splitlines()))
89 rt_info = route.split()
90- for i in xrange(len(rt_info) - 1):
91+ for i in range(len(rt_info) - 1):
92 if rt_info[i] == "dev":
93 ssh_if.append(rt_info[i+1])
94
95 # based on the basic info, get extended text details
96 for d in devices.keys():
97 # get additional info and add it to existing data
98- devices[d] = dict(devices[d].items() +
99- get_pci_device_details(d).items())
100+ devices[d] = devices[d].copy()
101+ devices[d].update(get_pci_device_details(d).items())
102
103 for _if in ssh_if:
104 if _if in devices[d]["Interface"].split(","):
105@@ -293,22 +293,22 @@ def dev_id_from_dev_name(dev_name):
106 if dev_name in devices[d]["Interface"].split(","):
107 return devices[d]["Slot"]
108 # if nothing else matches - error
109- print "Unknown device: %s. " \
110- "Please specify device in \"bus:slot.func\" format" % dev_name
111+ print ("Unknown device: %s. " \
112+ "Please specify device in \"bus:slot.func\" format" % dev_name)
113 sys.exit(1)
114
115 def unbind_one(dev_id, force):
116 '''Unbind the device identified by "dev_id" from its current driver'''
117 dev = devices[dev_id]
118 if not has_driver(dev_id):
119- print "%s %s %s is not currently managed by any driver\n" % \
120- (dev["Slot"], dev["Device_str"], dev["Interface"])
121+ print ("%s %s %s is not currently managed by any driver\n" % \
122+ (dev["Slot"], dev["Device_str"], dev["Interface"]))
123 return
124
125 # prevent us disconnecting ourselves
126 if dev["Ssh_if"] and not force:
127- print "Routing table indicates that interface %s is active" \
128- ". Skipping unbind" % (dev_id)
129+ print ("Routing table indicates that interface %s is active" \
130+ ". Skipping unbind" % (dev_id))
131 return
132
133 # write to /sys to unbind
134@@ -316,7 +316,7 @@ def unbind_one(dev_id, force):
135 try:
136 f = open(filename, "a")
137 except:
138- print "Error: unbind failed for %s - Cannot open %s" % (dev_id, filename)
139+ print ("Error: unbind failed for %s - Cannot open %s" % (dev_id, filename))
140 sys.exit(1)
141 f.write(dev_id)
142 f.close()
143@@ -329,14 +329,14 @@ def bind_one(dev_id, driver, force):
144
145 # prevent disconnection of our ssh session
146 if dev["Ssh_if"] and not force:
147- print "Routing table indicates that interface %s is active" \
148- ". Not modifying" % (dev_id)
149+ print ("Routing table indicates that interface %s is active" \
150+ ". Not modifying" % (dev_id))
151 return
152
153 # unbind any existing drivers we don't want
154 if has_driver(dev_id):
155 if dev["Driver_str"] == driver:
156- print "%s already bound to driver %s, skipping\n" % (dev_id, driver)
157+ print ("%s already bound to driver %s, skipping\n" % (dev_id, driver))
158 return
159 else:
160 saved_driver = dev["Driver_str"]
161@@ -349,14 +349,14 @@ def bind_one(dev_id, driver, force):
162 try:
163 f = open(filename, "w")
164 except:
165- print "Error: bind failed for %s - Cannot open %s" % (dev_id, filename)
166+ print ("Error: bind failed for %s - Cannot open %s" % (dev_id, filename))
167 return
168 try:
169 f.write("%04x %04x" % (dev["Vendor"], dev["Device"]))
170 f.close()
171 except:
172- print "Error: bind failed for %s - Cannot write new PCI ID to " \
173- "driver %s" % (dev_id, driver)
174+ print ("Error: bind failed for %s - Cannot write new PCI ID to " \
175+ "driver %s" % (dev_id, driver))
176 return
177
178 # do the bind by writing to /sys
179@@ -364,7 +364,7 @@ def bind_one(dev_id, driver, force):
180 try:
181 f = open(filename, "a")
182 except:
183- print "Error: bind failed for %s - Cannot open %s" % (dev_id, filename)
184+ print ("Error: bind failed for %s - Cannot open %s" % (dev_id, filename))
185 if saved_driver is not None: # restore any previous driver
186 bind_one(dev_id, saved_driver, force)
187 return
188@@ -378,7 +378,7 @@ def bind_one(dev_id, driver, force):
189 tmp = get_pci_device_details(dev_id)
190 if "Driver_str" in tmp and tmp["Driver_str"] == driver:
191 return
192- print "Error: bind failed for %s - Cannot bind to driver %s" % (dev_id, driver)
193+ print ("Error: bind failed for %s - Cannot bind to driver %s" % (dev_id, driver))
194 if saved_driver is not None: # restore any previous driver
195 bind_one(dev_id, saved_driver, force)
196 return
197@@ -423,8 +423,8 @@ def display_devices(title, dev_list, extra_params = None):
198 %()s fields in it for replacement by the named fields in each device's
199 dictionary.'''
200 strings = [] # this holds the strings to print. We sort before printing
201- print "\n%s" % title
202- print "="*len(title)
203+ print ("\n%s" % title)
204+ print ("="*len(title))
205 if len(dev_list) == 0:
206 strings.append("<none>")
207 else:
208@@ -436,7 +436,7 @@ def display_devices(title, dev_list, extra_params = None):
209 strings.append("%s '%s'" % (dev["Slot"], dev["Device_str"]))
210 # sort before printing, so that the entries appear in PCI order
211 strings.sort()
212- print "\n".join(strings) # print one per line
213+ print ("\n".join(strings)) # print one per line
214
215 def show_status():
216 '''Function called when the script is passed the "--status" option. Displays
217@@ -480,9 +480,9 @@ def parse_args():
218 opts, args = getopt.getopt(sys.argv[1:], "b:us",
219 ["help", "usage", "status", "force",
220 "bind=", "unbind"])
221- except getopt.GetoptError, error:
222- print str(error)
223- print "Run '%s --usage' for further information" % sys.argv[0]
224+ except (getopt.GetoptError, error):
225+ print (str(error))
226+ print ("Run '%s --usage' for further information" % sys.argv[0])
227 sys.exit(1)
228
229 for opt, arg in opts:
230@@ -495,7 +495,7 @@ def parse_args():
231 force_flag = True
232 if opt == "-b" or opt == "-u" or opt == "--bind" or opt == "--unbind":
233 if b_flag is not None:
234- print "Error - Only one bind or unbind may be specified\n"
235+ print ("Error - Only one bind or unbind may be specified\n")
236 sys.exit(1)
237 if opt == "-u" or opt == "--unbind":
238 b_flag = "none"
239@@ -510,13 +510,13 @@ def do_arg_actions():
240 global args
241
242 if b_flag is None and not status_flag:
243- print "Error: No action specified for devices. Please give a -b or -u option"
244- print "Run '%s --usage' for further information" % sys.argv[0]
245+ print ("Error: No action specified for devices. Please give a -b or -u option")
246+ print ("Run '%s --usage' for further information" % sys.argv[0])
247 sys.exit(1)
248
249 if b_flag is not None and len(args) == 0:
250- print "Error: No devices specified."
251- print "Run '%s --usage' for further information" % sys.argv[0]
252+ print ("Error: No devices specified.")
253+ print ("Run '%s --usage' for further information" % sys.argv[0])
254 sys.exit(1)
255
256 if b_flag == "none" or b_flag == "None":
257--
2582.7.3
259
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-05-tools-support-binding-to-built-in-kernel-modules.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-05-tools-support-binding-to-built-in-kernel-modules.patch
deleted file mode 100644
index 25f79b7..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-05-tools-support-binding-to-built-in-kernel-modules.patch
+++ /dev/null
@@ -1,75 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From bb9f408550d13af6c1da104b0d9d9b9837f69bde Mon Sep 17 00:00:00 2001
8From: Kamil Rytarowski <kamil.rytarowski@caviumnetworks.com>
9Date: Thu, 28 Jan 2016 14:13:53 +0100
10Subject: [PATCH] tools: support binding to built-in kernel modules
11
12Currently dpdk_nic_bind.py detects Linux kernel modules via reading
13/proc/modules. Built-in ones aren't listed there and therefore they are
14not being found by the script.
15
16Add support for checking built-in modules with parsing the sysfs files.
17
18This commit obsoletes the /proc/modules parsing approach.
19
20Signed-off-by: Kamil Rytarowski <kamil.rytarowski@caviumnetworks.com>
21Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
22---
23 tools/dpdk_nic_bind.py | 30 ++++++++++++++++++++----------
24 1 file changed, 20 insertions(+), 10 deletions(-)
25
26diff --git a/tools/dpdk_nic_bind.py b/tools/dpdk_nic_bind.py
27index dfefdae..14c5311 100755
28--- a/tools/dpdk_nic_bind.py
29+++ b/tools/dpdk_nic_bind.py
30@@ -156,22 +156,32 @@ def check_modules():
31 '''Checks that igb_uio is loaded'''
32 global dpdk_drivers
33
34- fd = open("/proc/modules", 'r')
35- loaded_mods = fd.readlines()
36- fd.close()
37-
38 # list of supported modules
39 mods = [{"Name" : driver, "Found" : False} for driver in dpdk_drivers]
40
41 # first check if module is loaded
42- for line in loaded_mods:
43+ try:
44+ # Get list of sysfs modules (both built-in and dynamically loaded)
45+ sysfs_path = '/sys/module/'
46+
47+ # Get the list of directories in sysfs_path
48+ sysfs_mods = [os.path.join(sysfs_path, o) for o
49+ in os.listdir(sysfs_path)
50+ if os.path.isdir(os.path.join(sysfs_path, o))]
51+
52+ # Extract the last element of '/sys/module/abc' in the array
53+ sysfs_mods = [a.split('/')[-1] for a in sysfs_mods]
54+
55+ # special case for vfio_pci (module is named vfio-pci,
56+ # but its .ko is named vfio_pci)
57+ sysfs_mods = map(lambda a:
58+ a if a != 'vfio_pci' else 'vfio-pci', sysfs_mods)
59+
60 for mod in mods:
61- if line.startswith(mod["Name"]):
62- mod["Found"] = True
63- # special case for vfio_pci (module is named vfio-pci,
64- # but its .ko is named vfio_pci)
65- elif line.replace("_", "-").startswith(mod["Name"]):
66+ if mod["Name"] in sysfs_mods:
67 mod["Found"] = True
68+ except:
69+ pass
70
71 # check if we have at least one loaded module
72 if True not in [mod["Found"] for mod in mods] and b_flag is not None:
73--
742.7.3
75
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-06-eal-linux-support-built-in-kernel-modules.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-06-eal-linux-support-built-in-kernel-modules.patch
deleted file mode 100644
index 1790f37..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-06-eal-linux-support-built-in-kernel-modules.patch
+++ /dev/null
@@ -1,89 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From 6e7caa1ad9d597fed0a49468af25ae6e68b8c443 Mon Sep 17 00:00:00 2001
8From: Kamil Rytarowski <kamil.rytarowski@caviumnetworks.com>
9Date: Thu, 28 Jan 2016 14:13:54 +0100
10Subject: [PATCH] eal/linux: support built-in kernel modules
11
12Currently rte_eal_check_module() detects Linux kernel modules via reading
13/proc/modules. Built-in ones aren't listed there and therefore they are not
14being found.
15
16Add support for checking built-in modules with parsing the sysfs files
17
18This commit obsoletes the /proc/modules parsing approach.
19
20Signed-off-by: Kamil Rytarowski <kamil.rytarowski@caviumnetworks.com>
21Acked-by: David Marchand <david.marchand@6wind.com>
22Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
23---
24 lib/librte_eal/linuxapp/eal/eal.c | 35 +++++++++++++++++++++--------------
25 1 file changed, 21 insertions(+), 14 deletions(-)
26
27diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
28index 635ec36..4d3e0de 100644
29--- a/lib/librte_eal/linuxapp/eal/eal.c
30+++ b/lib/librte_eal/linuxapp/eal/eal.c
31@@ -49,6 +49,7 @@
32 #include <errno.h>
33 #include <sys/mman.h>
34 #include <sys/queue.h>
35+#include <sys/stat.h>
36 #if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686)
37 #include <sys/io.h>
38 #endif
39@@ -901,27 +902,33 @@ int rte_eal_has_hugepages(void)
40 int
41 rte_eal_check_module(const char *module_name)
42 {
43- char mod_name[30]; /* Any module names can be longer than 30 bytes? */
44- int ret = 0;
45+ char sysfs_mod_name[PATH_MAX];
46+ struct stat st;
47 int n;
48
49 if (NULL == module_name)
50 return -1;
51
52- FILE *fd = fopen("/proc/modules", "r");
53- if (NULL == fd) {
54- RTE_LOG(ERR, EAL, "Open /proc/modules failed!"
55- " error %i (%s)\n", errno, strerror(errno));
56+ /* Check if there is sysfs mounted */
57+ if (stat("/sys/module", &st) != 0) {
58+ RTE_LOG(DEBUG, EAL, "sysfs is not mounted! error %i (%s)\n",
59+ errno, strerror(errno));
60 return -1;
61 }
62- while (!feof(fd)) {
63- n = fscanf(fd, "%29s %*[^\n]", mod_name);
64- if ((n == 1) && !strcmp(mod_name, module_name)) {
65- ret = 1;
66- break;
67- }
68+
69+ /* A module might be built-in, therefore try sysfs */
70+ n = snprintf(sysfs_mod_name, PATH_MAX, "/sys/module/%s", module_name);
71+ if (n < 0 || n > PATH_MAX) {
72+ RTE_LOG(DEBUG, EAL, "Could not format module path\n");
73+ return -1;
74 }
75- fclose(fd);
76
77- return ret;
78+ if (stat(sysfs_mod_name, &st) != 0) {
79+ RTE_LOG(DEBUG, EAL, "Module %s not found! error %i (%s)\n",
80+ sysfs_mod_name, errno, strerror(errno));
81+ return 0;
82+ }
83+
84+ /* Module has been found */
85+ return 1;
86 }
87--
882.7.3
89
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-07-mempool-fix-leak-when-creation-fails.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-07-mempool-fix-leak-when-creation-fails.patch
deleted file mode 100644
index 6d4230b..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-07-mempool-fix-leak-when-creation-fails.patch
+++ /dev/null
@@ -1,95 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From 86f36ff9578b5f3d697c8fcf6072dcb70e2b246f Mon Sep 17 00:00:00 2001
8From: Olivier Matz <olivier.matz@6wind.com>
9Date: Tue, 16 Feb 2016 15:40:10 +0100
10Subject: [PATCH] mempool: fix leak when creation fails
11
12Since commits ff909fe21f and 4e32101f9b, it is now possible to free
13memzones and rings.
14
15The rte_mempool_create() should be modified to take advantage of this
16and not leak memory when an allocation fails.
17
18Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
19---
20 lib/librte_mempool/rte_mempool.c | 28 +++++++++++++---------------
21 1 file changed, 13 insertions(+), 15 deletions(-)
22
23diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
24index aff5f6d..f8781e1 100644
25--- a/lib/librte_mempool/rte_mempool.c
26+++ b/lib/librte_mempool/rte_mempool.c
27@@ -438,8 +438,8 @@ rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,
28 char rg_name[RTE_RING_NAMESIZE];
29 struct rte_mempool_list *mempool_list;
30 struct rte_mempool *mp = NULL;
31- struct rte_tailq_entry *te;
32- struct rte_ring *r;
33+ struct rte_tailq_entry *te = NULL;
34+ struct rte_ring *r = NULL;
35 const struct rte_memzone *mz;
36 size_t mempool_size;
37 int mz_flags = RTE_MEMZONE_1GB|RTE_MEMZONE_SIZE_HINT_ONLY;
38@@ -511,7 +511,7 @@ rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,
39 snprintf(rg_name, sizeof(rg_name), RTE_MEMPOOL_MZ_FORMAT, name);
40 r = rte_ring_create(rg_name, rte_align32pow2(n+1), socket_id, rg_flags);
41 if (r == NULL)
42- goto exit;
43+ goto exit_unlock;
44
45 /*
46 * reserve a memory zone for this mempool: private data is
47@@ -536,7 +536,7 @@ rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,
48 te = rte_zmalloc("MEMPOOL_TAILQ_ENTRY", sizeof(*te), 0);
49 if (te == NULL) {
50 RTE_LOG(ERR, MEMPOOL, "Cannot allocate tailq entry!\n");
51- goto exit;
52+ goto exit_unlock;
53 }
54
55 /*
56@@ -561,15 +561,8 @@ rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,
57 snprintf(mz_name, sizeof(mz_name), RTE_MEMPOOL_MZ_FORMAT, name);
58
59 mz = rte_memzone_reserve(mz_name, mempool_size, socket_id, mz_flags);
60-
61- /*
62- * no more memory: in this case we loose previously reserved
63- * space for the ring as we cannot free it
64- */
65- if (mz == NULL) {
66- rte_free(te);
67- goto exit;
68- }
69+ if (mz == NULL)
70+ goto exit_unlock;
71
72 if (rte_eal_has_hugepages()) {
73 startaddr = (void*)mz->addr;
74@@ -633,11 +626,16 @@ rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,
75 rte_rwlock_write_lock(RTE_EAL_TAILQ_RWLOCK);
76 TAILQ_INSERT_TAIL(mempool_list, te, next);
77 rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK);
78-
79-exit:
80 rte_rwlock_write_unlock(RTE_EAL_MEMPOOL_RWLOCK);
81
82 return mp;
83+
84+exit_unlock:
85+ rte_rwlock_write_unlock(RTE_EAL_MEMPOOL_RWLOCK);
86+ rte_ring_free(r);
87+ rte_free(te);
88+
89+ return NULL;
90 }
91
92 /* Return the number of entries in the mempool */
93--
942.7.3
95
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-08-vhost-fix-leak-of-fds-and-mmaps.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-08-vhost-fix-leak-of-fds-and-mmaps.patch
deleted file mode 100644
index d3e06f5..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-08-vhost-fix-leak-of-fds-and-mmaps.patch
+++ /dev/null
@@ -1,154 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From ca67ed289a76f38d6c4a4021985a36eaf1d77e28 Mon Sep 17 00:00:00 2001
8From: Rich Lane <rich.lane@bigswitch.com>
9Date: Wed, 10 Feb 2016 10:40:55 -0800
10Subject: [PATCH] vhost: fix leak of fds and mmaps
11
12The common vhost code only supported a single mmap per device. vhost-user
13worked around this by saving the address/length/fd of each mmap after the end
14of the rte_virtio_memory struct. This only works if the vhost-user code frees
15dev->mem, since the common code is unaware of the extra info. The
16VHOST_USER_RESET_OWNER message is one situation where the common code frees
17dev->mem and leaks the fds and mappings. This happens every time I shut down a
18VM.
19
20The new code calls back into the implementation (vhost-user or vhost-cuse) to
21clean up these resources.
22
23The vhost-cuse changes are only compile tested.
24
25Signed-off-by: Rich Lane <rich.lane@bigswitch.com>
26Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
27---
28 lib/librte_vhost/vhost-net.h | 6 ++++++
29 lib/librte_vhost/vhost_cuse/virtio-net-cdev.c | 12 ++++++++++++
30 lib/librte_vhost/vhost_user/vhost-net-user.c | 1 -
31 lib/librte_vhost/vhost_user/virtio-net-user.c | 25 ++++++++++---------------
32 lib/librte_vhost/vhost_user/virtio-net-user.h | 1 -
33 lib/librte_vhost/virtio-net.c | 8 +-------
34 6 files changed, 29 insertions(+), 24 deletions(-)
35
36Index: dpdk/lib/librte_vhost/vhost-net.h
37===================================================================
38--- dpdk.orig/lib/librte_vhost/vhost-net.h
39+++ dpdk/lib/librte_vhost/vhost-net.h
40@@ -115,4 +115,10 @@ struct vhost_net_device_ops {
41
42
43 struct vhost_net_device_ops const *get_virtio_net_callbacks(void);
44+
45+/*
46+ * Backend-specific cleanup. Defined by vhost-cuse and vhost-user.
47+ */
48+void vhost_backend_cleanup(struct virtio_net *dev);
49+
50 #endif /* _VHOST_NET_CDEV_H_ */
51Index: dpdk/lib/librte_vhost/vhost_cuse/virtio-net-cdev.c
52===================================================================
53--- dpdk.orig/lib/librte_vhost/vhost_cuse/virtio-net-cdev.c
54+++ dpdk/lib/librte_vhost/vhost_cuse/virtio-net-cdev.c
55@@ -421,3 +421,15 @@ int cuse_set_backend(struct vhost_device
56
57 return ops->set_backend(ctx, file);
58 }
59+
60+void
61+vhost_backend_cleanup(struct virtio_net *dev)
62+{
63+ /* Unmap QEMU memory file if mapped. */
64+ if (dev->mem) {
65+ munmap((void *)(uintptr_t)dev->mem->mapped_address,
66+ (size_t)dev->mem->mapped_size);
67+ free(dev->mem);
68+ dev->mem = NULL;
69+ }
70+}
71Index: dpdk/lib/librte_vhost/vhost_user/vhost-net-user.c
72===================================================================
73--- dpdk.orig/lib/librte_vhost/vhost_user/vhost-net-user.c
74+++ dpdk/lib/librte_vhost/vhost_user/vhost-net-user.c
75@@ -347,7 +347,6 @@ vserver_message_handler(int connfd, void
76 close(connfd);
77 *remove = 1;
78 free(cfd_ctx);
79- user_destroy_device(ctx);
80 ops->destroy_device(ctx);
81
82 return;
83Index: dpdk/lib/librte_vhost/vhost_user/virtio-net-user.c
84===================================================================
85--- dpdk.orig/lib/librte_vhost/vhost_user/virtio-net-user.c
86+++ dpdk/lib/librte_vhost/vhost_user/virtio-net-user.c
87@@ -88,6 +88,16 @@ free_mem_region(struct virtio_net *dev)
88 }
89 }
90
91+void
92+vhost_backend_cleanup(struct virtio_net *dev)
93+{
94+ if (dev->mem) {
95+ free_mem_region(dev);
96+ free(dev->mem);
97+ dev->mem = NULL;
98+ }
99+}
100+
101 int
102 user_set_mem_table(struct vhost_device_ctx ctx, struct VhostUserMsg *pmsg)
103 {
104@@ -339,21 +349,6 @@ user_set_vring_enable(struct vhost_devic
105 }
106
107 void
108-user_destroy_device(struct vhost_device_ctx ctx)
109-{
110- struct virtio_net *dev = get_device(ctx);
111-
112- if (dev && (dev->flags & VIRTIO_DEV_RUNNING))
113- notify_ops->destroy_device(dev);
114-
115- if (dev && dev->mem) {
116- free_mem_region(dev);
117- free(dev->mem);
118- dev->mem = NULL;
119- }
120-}
121-
122-void
123 user_set_protocol_features(struct vhost_device_ctx ctx,
124 uint64_t protocol_features)
125 {
126Index: dpdk/lib/librte_vhost/vhost_user/virtio-net-user.h
127===================================================================
128--- dpdk.orig/lib/librte_vhost/vhost_user/virtio-net-user.h
129+++ dpdk/lib/librte_vhost/vhost_user/virtio-net-user.h
130@@ -55,5 +55,4 @@ int user_get_vring_base(struct vhost_dev
131 int user_set_vring_enable(struct vhost_device_ctx ctx,
132 struct vhost_vring_state *state);
133
134-void user_destroy_device(struct vhost_device_ctx);
135 #endif
136Index: dpdk/lib/librte_vhost/virtio-net.c
137===================================================================
138--- dpdk.orig/lib/librte_vhost/virtio-net.c
139+++ dpdk/lib/librte_vhost/virtio-net.c
140@@ -199,13 +199,7 @@ cleanup_device(struct virtio_net *dev, i
141 {
142 uint32_t i;
143
144- /* Unmap QEMU memory file if mapped. */
145- if (dev->mem) {
146- munmap((void *)(uintptr_t)dev->mem->mapped_address,
147- (size_t)dev->mem->mapped_size);
148- free(dev->mem);
149- dev->mem = NULL;
150- }
151+ vhost_backend_cleanup(dev);
152
153 for (i = 0; i < dev->virt_qp_nb; i++) {
154 cleanup_vq(dev->virtqueue[i * VIRTIO_QNUM + VIRTIO_RXQ], destroy);
diff --git a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-09-port-fix-crash-for-ring-writer-nodrop.patch b/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-09-port-fix-crash-for-ring-writer-nodrop.patch
deleted file mode 100644
index 2fc3870..0000000
--- a/ovs_build/dpdk_2.2.0/debian/patches/ubuntu-backport-09-port-fix-crash-for-ring-writer-nodrop.patch
+++ /dev/null
@@ -1,80 +0,0 @@
1Description: backport of dpdk 16.04-rc1 fix for LP: #1559981
2
3Forwarded: n/a (already upstream)
4Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
5Last-Update: 2016-03-20
6
7From fa11a8a7251e14eca0a4190128732386f13551bd Mon Sep 17 00:00:00 2001
8From: Jasvinder Singh <jasvinder.singh@intel.com>
9Date: Wed, 2 Mar 2016 21:19:58 +0000
10Subject: [PATCH] port: fix crash for ring writer nodrop
11
12Error log:
13 [APP] Initializing PIPELINE0 ...
14 pipeline> [APP] Initializing PIPELINE1 ...
15