mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-29 13:23:23 +01:00
Exercise software UDP checksums when splice() transfers multiple pipe fragments into a corked datagram. Use separate source pipes so short writes cannot merge, and use odd fragment lengths to expose checksum-position errors between fragments. Cover IPv4, IPv6 and IPv4-mapped destinations, connected and unconnected sockets, resident prefixes, even and odd fragment lengths, and a fragment starting near a page boundary. Ordinary sends provide a control. Check the complete payload and reject extra datagrams after a successful send. Keep receive waits bounded and skip unavailable address families or pipe capacities. The test uses only loopback sockets with ephemeral ports and has no dependency on the application that exposed the regression. Signed-off-by: Alireza Asgari <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
247 lines
4.9 KiB
Makefile
247 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 \
|
|
udp_splice_checksum \
|
|
# 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
|