Following a rework of dpdk network structures names [1], update the
concerned parts.
Ran Olivier script [2]:
sh prefix-net-rte.sh $(find -name "*dpdk*.c")
sh prefix-net-rte.sh $(find -name "*dpdk*.h")
sh prefix-net-rte.sh $(find -name "*rte*.c")
sh prefix-net-rte.sh $(find -name "*rte*.h")
travis: Make it possible to build against a dpdk branch.
Rework the build script so that we can pass branches and tags.
With this, DPDK_VER can be passed as:
- a string starting with refs/ which is understood as a git reference.
This triggers a git clone on DPDK_GIT (default value points to https://dpdk.org/git/dpdk) for a single branch pointing to this
reference (to save some disk),
- else, any other string which is understood as an official release.
This triggers a tarball download on dpdk.org.
Rather than patch the dpdk makefile and a template config file, we can
pass the -fPIC flag via EXTRA_CFLAGS.
This is more reliable than expecting the dpdk file names to be kept
unchanged.
util: implement count_1bits with Neon intrinsics or gcc built-in for aarch64.
Userspace datapath needs to traverse through miniflow values many times. In
this process, 'count_1bits' operation for 'Flowmap' significantly impact
performance. On arm, this function was defined by portable implementation
because gcc for arm does not support popcnt feature.
But in the aarch64, VCNT neon instruction can accelerate "count_1bits".
From Gcc-7, the built-in function is implemented with neon intruction.
In this patch, count_1bits function will be impelmented with gcc built-in
from gcc-7 on, and with neon intrinsics in gcc-6.
Performance test was run in two aarch64 machines. In the NIC2NIC test, one
tuple dpcls lookup case achieves around 4% throughput improvement and
10(average) tuples case achieves around 5% improvement.
This patch updated acinclude.m4 so that OVS can be compiled on
5.0.x kernels.
This patch also updated travis files so that 5.0.x kernel versions
are used during travis test builds.
Besides, NEWS and releases.rst are also updated to reflect this
new support.
Acked-by: Yi-Hung Wei <email address hidden>
Signed-off-by: Yifeng Sun <email address hidden>
Signed-off-by: Ben Pfaff <email address hidden>
net: core: dev: Add extack argument to dev_change_flags()
Upstream commit:
commit 567c5e13be5cc74d24f5eb54cf353c2e2277189b
Author: Petr Machata <email address hidden>
Date: Thu Dec 6 17:05:42 2018 +0000
net: core: dev: Add extack argument to dev_change_flags()
In order to pass extack together with NETDEV_PRE_UP notifications, it's
necessary to route the extack to __dev_open() from diverse (possibly
indirect) callers. One prominent API through which the notification is
invoked is dev_change_flags().
Therefore extend dev_change_flags() with and extra extack argument and
update all users. Most of the calls end up just encoding NULL, but
several sites (VLAN, ipvlan, VRF, rtnetlink) do have extack available.
Since the function declaration line is changed anyway, name the other
function arguments to placate checkpatch.
Signed-off-by: Petr Machata <email address hidden>
Acked-by: Jiri Pirko <email address hidden>
Reviewed-by: Ido Schimmel <email address hidden>
Reviewed-by: David Ahern <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
This patch backports the above upstream patch and also adds fixes
in compat code.
Cc: Petr Machata <email address hidden>
Acked-by: Yi-Hung Wei <email address hidden>
Signed-off-by: Yifeng Sun <email address hidden>
Signed-off-by: Ben Pfaff <email address hidden>
datapath: Backport the removal of __tcp_checksum_complete()
Upstream commit 6ab6dfa6bb500f5cbb9b7a0f23a1613417ca2d12 ("net: get
rid of __tcp_checksum_complete())" deleted __tcp_checksum_complete()
and caused compilation failure for OVS on newer kernels.
This patch fixes it by using __skb_checksum_complete(), which is
100% the same with __tcp_checksum_complete().
Acked-by: Yi-Hung Wei <email address hidden>
Signed-off-by: Yifeng Sun <email address hidden>
Signed-off-by: Ben Pfaff <email address hidden>
9feb5bd...
by
=?utf-8?b?TWljaGHFgiBNaXJvc8WCYXc=?= <email address hidden>
OVS: remove use of VLAN_TAG_PRESENT
Upstream commits:
(1) commit 9df46aefafa6dee81a27c2a9d8ba360abd8c5fe3
Author: Michał Mirosław <email address hidden>
Date: Thu Nov 8 18:44:50 2018 +0100
OVS: remove use of VLAN_TAG_PRESENT
This is a minimal change to allow removing of VLAN_TAG_PRESENT.
It leaves OVS unable to use CFI bit, as fixing this would need
a deeper surgery involving userspace interface.
Signed-off-by: Michał Mirosław <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(2) commit 6083e28aa02d7c9e6b87f8b944e92793094ae047
Author: Michał Mirosław <email address hidden>
Date: Sat Nov 10 19:55:34 2018 +0100
OVS: remove VLAN_TAG_PRESENT - fixup
It turns out I missed one VLAN_TAG_PRESENT in OVS code while rebasing.
This fixes it.
Fixes: 9df46aefafa6 ("OVS: remove use of VLAN_TAG_PRESENT")
Signed-off-by: Michał Mirosław <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
This patch backports the above upstream patch to OVS and adds
extra checking in kernel module's compat code.
Cc: Michał Mirosław <email address hidden>
Acked-by: Yi-Hung Wei <email address hidden>
Signed-off-by: Yifeng Sun <email address hidden>
Signed-off-by: Ben Pfaff <email address hidden>