[PATCH net-next v3 0/2] amt: mark relay data as a UDP tunnel packet, with a selftest
From: Omar Ramadan
Date: Sun Oct 04 2026 - 12:12:24 EST
amt_send_multicast_data() never calls udp_tunnel_handle_offloads(),
unlike other UDP tunnels. With tx checksum offload on the amt device (off
by default), a UDP_SEGMENT burst through the relay is dropped before
patch 1 and delivered after it. Patch 2 adds the selftest.
This follows Eric Dumazet's suggestion on my withdrawn [PATCH net] "amt:
do not offer software GSO on the amt device":
https://lore.kernel.org/all/20260928181554.85766-1-omar@xxxxxxxxxxxxx/
Not touched: amt advertises NETIF_F_GSO_FRAGLIST and skb_copy_expand()
refuses such skbs with a WARN_ON_ONCE(). I have not reproduced it, and
it would be a separate fix.
v3:
- patch 2: fail a case when one of its captures dies (Sashiko review)
- patch 2: also check amtg rx_dropped, as the changelog says, and
mention the plain-datagram cases there (Sashiko review)
- patch 2: wait for a fresh READY, and fail a case when a helper does
not start (Sashiko review)
- patch 2: fail, not skip, when no relayed probe gets through (Sashiko
review)
- patch 2: fail, not skip, a tx-on UDP_SEGMENT case in which no GSO
skb reaches amt_dev_xmit(), as the changelog says
- patch 2: make amt_gso reject sizes that would overflow its buffers
(Sashiko review)
- patch 1 is unchanged
v2: https://lore.kernel.org/all/20261002212458.34247-1-omar@xxxxxxxxxxxxx/
- shorten the changelogs, add Suggested-by, and move the testing notes
below the "---" (Eric); patch 1's code is unchanged, one comment is
corrected
- patch 2: fix the shellcheck and 80-column checkpatch findings reported
by the netdev CI, skip when AF_PACKET is not available (v1 reported no
result and exit 0), add CONFIG_PACKET to the config, drop dead options
and code
v1: https://lore.kernel.org/all/20261001171016.88208-1-omar@xxxxxxxxxxxxx/
Omar Ramadan (2):
amt: mark relay data as a UDP tunnel packet before sending it
selftests: net: add an amt test for UDP_SEGMENT through the relay
drivers/net/amt.c | 10 +
tools/testing/selftests/net/.gitignore | 1 +
tools/testing/selftests/net/Makefile | 2 +
tools/testing/selftests/net/amt_gso.c | 462 +++++++++++++++++++++++++
tools/testing/selftests/net/amt_gso.sh | 282 +++++++++++++++
tools/testing/selftests/net/config | 1 +
6 files changed, 758 insertions(+)
create mode 100644 tools/testing/selftests/net/amt_gso.c
create mode 100755 tools/testing/selftests/net/amt_gso.sh
--
2.50.1 (Apple Git-155)