mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-29 03:24:53 -04:00
Add a selftest for the SEG6_IPTUNNEL_TABLE attribute, which selects the FIB table for the post-encap SID route lookup. This looks up the route for the first SID, the outer destination of the encapsulated packet. Two routers provide L3 VPN services over an IPv6 underlay. Each router uses a separate VRF per tenant, with default blackhole routes (IPv4 and IPv6) that drop unmatched traffic. Tenant traffic is encapsulated, then decapsulated with an End.DT46. The encap routes are installed in the tenant VRF, but the routes that match the first SIDs live in a separate underlay table (500). The "lookup 500" attribute points the lookup there rather than to the VRF. The test covers both the input path, where forwarded host traffic triggers encapsulation, and the output path, where a router originates traffic from its own loopback inside a VRF. With the "lookup" attribute, traffic reaches its destination on both paths. Without it, on the input path the lookup stays in the VRF and hits the blackhole, and on the output path it falls through to the main table, which has no matching route. Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it> Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Link: https://patch.msgid.link/20260711162907.6521-3-andrea.mayer@uniroma2.it Signed-off-by: Jakub Kicinski <kuba@kernel.org>
244 lines
4.9 KiB
Makefile
244 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 \
|
|
double_udp_encap.sh \
|
|
drop_monitor_tests.sh \
|
|
ecmp_rehash.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 \
|
|
ipv6_flowlabel_mgr \
|
|
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_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
|