Re: [PATCH] udp: let rx-udp-gro-forwarding aggregate under encapsulation

From: Willem de Bruijn

Date: Mon Oct 19 2026 - 14:26:47 EST


On Sun, Oct 18, 2026 at 12:54 PM Eva Kurchatova (Virtuozzo)
<eva.kurchatova@xxxxxxxxxxxxx> wrote:
>
>
> On Wed, 15 Oct 2026 02:56, Willem de Bruijn wrote:
> > Uses encapsulation in the same network namespace as where the test
> > runs? If different namespaces, the socket lookup should fail and
> > thus the behavior be the same as on a host without a tunnel.
>
> Different one: the vxlan sat in the init namespace, the test in the
> ns it creates. The static key is global, though, so the tunnel turns
> the lookup on everywhere, and the lookup then runs in the test's
> receiving namespace, where it finds the test's own receiver: a plain
> socket bound to any address, without UDP_GRO. That is why the check
> goes from 1 to 10 the moment a tunnel exists anywhere on the host.

I also don't have a straightforward fix to the test. Maybe just make
this one optionally SKIP if it fails.

This is the following test in veth.sh, right?

"
chk_gro() {
local msg="$1"
local expected=$2

ip netns exec $BASE$SRC ping -qc 1 $BM_NET_V4$DST >/dev/null
NSTAT_HISTORY=$STATS ip netns exec $NS_DST nstat -n

printf "%-60s" "$msg"
ip netns exec $BASE$DST ./udpgso_bench_rx -C 1000 -R 10 &
local spid=$!
sleep 0.1

ip netns exec $NS_SRC ./udpgso_bench_tx -4 -s 13000 -S 1300 -M
1 -D $BM_NET_V4$DST
local retc=$?
wait $spid
local rets=$?
"

which gets called both to verify coalsecing and no coalescing

"
ip netns exec $NS_SRC ethtool -K veth$SRC tx-udp-segmentation off
chk_gro " - aggregation with TSO off" 10

...

ip netns exec $NS_SRC ethtool -K veth$SRC tx-udp-segmentation off
ip netns exec $NS_DST ethtool -K veth$DST rx-udp-gro-forwarding on
chk_gro " - aggregation with TSO off" 1
"

The full solution would be to add a third true routing namespace in
between, which would not have that local socket without -G..