Commit 7b261e57 authored by Hangbin Liu's avatar Hangbin Liu Committed by Jiangshan Yi
Browse files

selftests: udpgro: no need to load xdp for gro

mainline inclusion
from mainline-v6.11-rc5
commit d7818402b1d80347c764001583f6d63fa68c2e1a
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IB5TVE

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7818402b1d80347c764001583f6d63fa68c2e1a



--------------------------------

After commit d7db7775ea2e ("net: veth: do not manipulate GRO when using
XDP"), there is no need to load XDP program to enable GRO. On the other
hand, the current test is failed due to loading the XDP program. e.g.

 # selftests: net: udpgro.sh
 # ipv4
 #  no GRO              ok
 #  no GRO chk cmsg     ok
 #  GRO                 ./udpgso_bench_rx: recv: bad packet len, got 1472, expected 14720
 #
 # failed

 [...]

 #  bad GRO lookup      ok
 #  multiple GRO socks  ./udpgso_bench_rx: recv: bad packet len, got 1452, expected 14520
 #
 # ./udpgso_bench_rx: recv: bad packet len, got 1452, expected 14520
 #
 # failed
 ok 1 selftests: net: udpgro.sh

After fix, all the test passed.

 # ./udpgro.sh
 ipv4
  no GRO                                  ok
  [...]
  multiple GRO socks                      ok

Fixes: d7db7775ea2e ("net: veth: do not manipulate GRO when using XDP")
Reported-by: default avatarYi Chen <yiche@redhat.com>
Closes: https://issues.redhat.com/browse/RHEL-53858


Reviewed-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarJiangshan Yi <yijiangshan@kylinos.cn>
parent cce00301
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -7,8 +7,6 @@ source net_helper.sh

readonly PEER_NS="ns-peer-$(mktemp -u XXXXXX)"

BPF_FILE="xdp_dummy.o"

# set global exit status, but never reset nonzero one.
check_err()
{
@@ -38,7 +36,7 @@ cfg_veth() {
	ip -netns "${PEER_NS}" addr add dev veth1 192.168.1.1/24
	ip -netns "${PEER_NS}" addr add dev veth1 2001:db8::1/64 nodad
	ip -netns "${PEER_NS}" link set dev veth1 up
	ip -n "${PEER_NS}" link set veth1 xdp object ${BPF_FILE} section xdp
	ip netns exec "${PEER_NS}" ethtool -K veth1 gro on
}

run_one() {
@@ -206,11 +204,6 @@ run_all() {
	return $ret
}

if [ ! -f ${BPF_FILE} ]; then
	echo "Missing ${BPF_FILE}. Run 'make' first"
	exit -1
fi

if [[ $# -eq 0 ]]; then
	run_all
elif [[ $1 == "__subprocess" ]]; then