linux/tools/testing/selftests/net/Makefile
Alice Mikityanska 18a9a43421 selftests: net: Test UDP length overflow with PMTU discover and big MTU
Two previous commits fixed overflow of UDP length when setsockopt
IP(V6)_MTU_DISCOVER is set to IPV6_PMTUDISC_DO or IP(V6)_PMTUDISC_PROBE,
and a large packet is sent over a netdev with an unusually large MTU.

This commit adds the selftests that replicate the described steps to
reproduce for IPv6 and IPv4, and also one more test that ensures that
sending UDP jumbograms over a raw socket is still possible after the
fix.

Signed-off-by: Alice Mikityanska <alice@isovalent.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260901195714.673548-4-alice.kernel@fastmail.im
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-07 17:13:55 -07:00

246 lines
4.9 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0
# Makefile for net selftests
CFLAGS += -Wall -Wl,--no-as-needed -O2 -g
CFLAGS += -I../../../../usr/include/ $(KHDR_INCLUDES)
# Additional include paths needed by kselftest.h
CFLAGS += -I../
TEST_PROGS := \
altnames.sh \
amt.sh \
arp_ndisc_evict_nocarrier.sh \
arp_ndisc_untracked_subnets.sh \
bareudp.sh \
big_tcp.sh \
big_tcp_tunnels.sh \
bind_bhash.sh \
bpf_offload.py \
bridge_stp_mode.sh \
bridge_vlan_dump.sh \
broadcast_ether_dst.sh \
broadcast_pmtu.sh \
busy_poll_test.sh \
cmsg_ip.sh \
cmsg_so_mark.sh \
cmsg_so_priority.sh \
cmsg_time.sh \
cork_fragsize.py \
double_udp_encap.sh \
drop_monitor_tests.sh \
ecmp_rehash.sh \
exception_cache.sh \
fcnal-ipv4.sh \
fcnal-ipv6.sh \
fcnal-other.sh \
fdb_flush.sh \
fdb_notify.sh \
fib-onlink-tests.sh \
fib_nexthop_multiprefix.sh \
fib_nexthop_nongw.sh \
fib_nexthops.sh \
fib_rule_tests.sh \
fib_tests.sh \
fin_ack_lat.sh \
fou_mcast_encap.sh \
fq_band_pktlimit.sh \
gre_gso.sh \
gre_ipv6_lladdr.sh \
icmp.sh \
icmp_redirect.sh \
io_uring_zerocopy_tx.sh \
ioam6.sh \
ip6_gre_headroom.sh \
ip6_tunnel.sh \
ip_defrag.sh \
ip_local_port_range.sh \
ipv6_flowlabel.sh \
ipv6_force_forwarding.sh \
ipv6_route_update_soft_lockup.sh \
ipvtap_test.sh \
l2_tos_ttl_inherit.sh \
l2tp.sh \
link_netns.py \
lwt_dst_cache_ref_loop.sh \
macvlan_mcast_shared_mac.sh \
msg_zerocopy.sh \
nat6to4.sh \
ndisc_unsolicited_na_test.sh \
netdev-l2addr.sh \
netdevice.sh \
netns-name.sh \
netns-sysctl.sh \
nk_qlease.py \
nl_netdev.py \
nl_nlctrl.py \
pmtu.sh \
protodown.sh \
psock_snd.sh \
reuseaddr_ports_exhausted.sh \
reuseport_addr_any.sh \
route_hint.sh \
route_localnet.sh \
rps_default_mask.sh \
rtnetlink.py \
rtnetlink.sh \
rtnetlink_notification.sh \
run_afpackettests \
run_netsocktests \
rxtimestamp.sh \
sctp_vrf.sh \
skf_net_off.sh \
srv6_encap_lookup_l3vpn_test.sh \
srv6_end_dt46_l3vpn_test.sh \
srv6_end_dt4_l3vpn_test.sh \
srv6_end_dt6_l3vpn_test.sh \
srv6_end_dx4_netfilter_test.sh \
srv6_end_dx6_netfilter_test.sh \
srv6_end_flavors_test.sh \
srv6_end_next_csid_l3vpn_test.sh \
srv6_end_x_next_csid_l3vpn_test.sh \
srv6_hencap_red_l3vpn_test.sh \
srv6_hl2encap_red_l2vpn_test.sh \
srv6_iptunnel_cache.sh \
stress_reuseport_listen.sh \
tcp_ecmp_failover.sh \
tcp_fastopen_backup_key.sh \
test_bpf.sh \
test_bridge_backup_port.sh \
test_bridge_neigh_suppress.sh \
test_ingress_egress_chaining.sh \
test_neigh.sh \
test_so_rcv.sh \
test_vxlan_fdb_changelink.sh \
test_vxlan_mdb.sh \
test_vxlan_nh.sh \
test_vxlan_nolocalbypass.sh \
test_vxlan_under_vrf.sh \
test_vxlan_vnifilter_notify.sh \
test_vxlan_vnifiltering.sh \
tfo_passive.sh \
traceroute.sh \
txtimestamp.sh \
udpgro.sh \
udpgro_bench.sh \
udpgro_frglist.sh \
udpgro_fwd.sh \
udpgso.sh \
udpgso_bench.sh \
unicast_extensions.sh \
veth.sh \
vlan_bridge_binding.sh \
vlan_hw_filter.sh \
vrf-xfrm-tests.sh \
vrf_route_leaking.sh \
vrf_strict_mode_test.sh \
xfrm_policy.sh \
xfrm_state.sh \
# end of TEST_PROGS
TEST_PROGS_EXTENDED := \
xfrm_policy_add_speed.sh \
# end of TEST_PROGS_EXTENDED
TEST_GEN_FILES := \
bind_bhash \
cmsg_sender \
fin_ack_lat \
hwtstamp_config \
io_uring_zerocopy_tx \
ioam6_parser \
ip_defrag \
ip_local_port_range \
ipsec \
ipv6_flowlabel \
msg_zerocopy \
nettest \
psock_fanout \
psock_snd \
psock_tpacket \
reuseaddr_ports_exhausted \
reuseport_addr_any \
rxtimestamp \
sctp_hello \
skf_net_off \
so_netns_cookie \
so_rcv_listener \
socket \
stress_reuseport_listen \
tcp_fastopen_backup_key \
tcp_inq \
tcp_mmap \
tfo \
timestamping \
txring_overwrite \
txtimestamp \
udpgso \
udpgso_bench_rx \
udpgso_bench_tx \
# end of TEST_GEN_FILES
TEST_GEN_PROGS := \
bind_timewait \
bind_wildcard \
epoll_busy_poll \
getsockopt_iter \
icmp_rfc4884 \
ipv6_flowlabel_mgr \
ipv6_fragmentation \
proc_net_pktgen \
reuseaddr_conflict \
reuseport_bpf \
reuseport_bpf_cpu \
reuseport_bpf_numa \
reuseport_dualstack \
sk_bind_sendto_listen \
sk_connect_zero_addr \
sk_so_peek_off \
so_incoming_cpu \
tap \
tcp_port_share \
tls \
# end of TEST_GEN_PROGS
TEST_FILES := \
fcnal-test.sh \
in_netns.sh \
lib.sh \
settings \
# end of TEST_FILES
# YNL files, must be before "include ..lib.mk"
YNL_GEN_FILES := busy_poller
YNL_GEN_PROGS := \
netlink-dumps \
tun \
# end of YNL_GEN_PROGS
TEST_GEN_FILES += $(YNL_GEN_FILES)
TEST_GEN_PROGS += $(YNL_GEN_PROGS)
TEST_GEN_FILES += $(patsubst %.c,%.o,$(wildcard *.bpf.c))
TEST_INCLUDES := forwarding/lib.sh
include ../lib.mk
# YNL build
YNL_GENS := \
netdev \
rt-addr \
rt-link \
rt-neigh \
rt-route \
# end of YNL_GENS
include ynl.mk
$(OUTPUT)/epoll_busy_poll: LDLIBS += -lcap
$(OUTPUT)/reuseport_bpf_numa: LDLIBS += -lnuma
$(OUTPUT)/tcp_mmap: LDLIBS += -lpthread -lcrypto
$(OUTPUT)/tcp_inq: LDLIBS += -lpthread
$(OUTPUT)/bind_bhash: LDLIBS += -lpthread
$(OUTPUT)/io_uring_zerocopy_tx: CFLAGS += -I../../../include/
include bpf.mk