linux/tools/testing/selftests
Ido Schimmel f7240999de selftests: traceroute: Add VRF tests
Create versions of the existing test cases where the routers generating
the ICMP error messages are using VRFs. Check that the source IPs of
these messages do not change in the presence of VRFs.

IPv6 always behaved correctly, but IPv4 fails when reverting "ipv4:
icmp: Fix source IP derivation in presence of VRFs".

Without IPv4 change:

 # ./traceroute.sh
 TEST: IPv6 traceroute                                               [ OK ]
 TEST: IPv6 traceroute with VRF                                      [ OK ]
 TEST: IPv4 traceroute                                               [ OK ]
 TEST: IPv4 traceroute with VRF                                      [FAIL]
         traceroute did not return 1.0.3.1
 $ echo $?
 1

The test fails because the ICMP error message is sent with the VRF
device's IP (1.0.4.1):

 # traceroute -n -s 1.0.1.3 1.0.2.4
 traceroute to 1.0.2.4 (1.0.2.4), 30 hops max, 60 byte packets
  1  1.0.4.1  0.165 ms  0.110 ms  0.103 ms
  2  1.0.2.4  0.098 ms  0.085 ms  0.078 ms
 # traceroute -n -s 1.0.3.3 1.0.2.4
 traceroute to 1.0.2.4 (1.0.2.4), 30 hops max, 60 byte packets
  1  1.0.4.1  0.201 ms  0.138 ms  0.129 ms
  2  1.0.2.4  0.123 ms  0.105 ms  0.098 ms

With IPv4 change:

 # ./traceroute.sh
 TEST: IPv6 traceroute                                               [ OK ]
 TEST: IPv6 traceroute with VRF                                      [ OK ]
 TEST: IPv4 traceroute                                               [ OK ]
 TEST: IPv4 traceroute with VRF                                      [ OK ]
 $ echo $?
 0

Reviewed-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20250908073238.119240-9-idosch@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-09-11 12:22:38 +02:00
..
acct selftests: acct: Add ksft_exit_skip if not running as root 2025-01-14 17:06:31 -07:00
alsa selftests: ALSA: fix memory leak in utimer test 2025-07-31 17:01:53 +02:00
amd-pstate
arm64 kselftest/arm64: Don't open code SVE_PT_SIZE() in fp-ptrace 2025-08-30 11:31:11 +01:00
bpf udp: add drop_counters to udp socket 2025-08-28 13:14:50 +02:00
breakpoints selftests: breakpoints: use suspend_stats to reliably check suspend success 2025-07-10 14:21:30 -06:00
cachestat selftests: cachestat: add tests for mmap, refactor and enhance mmap test for cachestat validation 2025-08-02 12:06:09 -07:00
capabilities selftests/capabilities: fix warn_unused_result build warnings 2024-05-08 16:48:25 -06:00
cgroup selftests/cgroup: fix cpu.max tests 2025-07-17 08:12:19 -10:00
clone3 selftests/pidfd: fixes syscall number defines 2025-03-25 14:59:05 +01:00
connector
core selftests: core: add unshare_test to gitignore 2024-09-30 11:42:11 -06:00
coredump selftests/coredump: Remove the read() that fails the test 2025-08-11 15:43:31 +02:00
cpu-hotplug selftests/cpu-hotplug: fix typo in hotplaggable_offline_cpus function name 2025-06-17 14:12:16 -06:00
cpufreq kselftest: cpufreq: Get rid of double suspend in rtcwake case 2025-05-09 12:43:39 -06:00
damon selftests/damon: fix selftests by installing drgn related script 2025-08-19 16:35:55 -07:00
devices kselftest/devices/probe: Fix SyntaxWarning in regex strings for Python3 2024-10-02 14:30:58 -06:00
dma selftests/dma:remove unused variable 2024-07-11 11:23:55 -06:00
dmabuf-heaps kselftests: dmabuf-heaps: Ensure the driver name is null-terminated 2024-07-29 09:02:54 +02:00
drivers selftests: net: Add tests to verify team driver option set and get. 2025-09-11 11:07:55 +02:00
dt kselftest: dt: Ignore nodes that have ancestors disabled 2024-09-05 07:54:16 -05:00
efivarfs selftests/efivarfs: add concurrent update tests 2025-01-21 16:34:41 +01:00
exec AT_EXECVE_CHECK update for v6.14-rc1 (fix1) 2025-01-31 17:12:31 -08:00
fchmodat2 selftests/fchmodat2: fix clang build failure due to -static-libasan 2024-06-11 15:05:05 -06:00
filelock
filesystems selftests/kernfs: test xattr retrieval 2025-07-02 14:18:22 +02:00
firmware
fpu
ftrace Probes updates for v6.17: 2025-07-30 15:38:01 -07:00
futex Update for the futex subsystem: 2025-07-29 14:39:42 -07:00
gpio selftests: gpio: gpio-aggregator: add a test case for _sysfs prefix reservation 2025-04-14 22:30:01 +02:00
hid hid-for-linus-2025073101 2025-07-31 21:26:05 -07:00
ia64
intel_pstate selftests/intel_pstate: check if cpupower is installed 2024-10-28 21:18:57 -06:00
iommu iommufd 6.17 merge window pull 2025-07-31 12:43:08 -07:00
ipc selftests: ipc: Replace fail print statements with ksft_test_result_fail 2025-06-17 14:45:05 -06:00
ir
kcmp selftests/kcmp: remove unused open mode 2024-05-11 15:51:43 -07:00
kexec selftests/kexec: fix test_kexec_jump build 2025-07-22 15:10:52 -06:00
kho kho: add test for kexec handover 2025-08-02 12:01:41 -07:00
kmod lib/test_kmod: do not hardcode/depend on any filesystem 2025-05-11 17:54:09 -07:00
kselftest printf: convert self-test to KUnit 2025-03-13 10:26:33 -07:00
kselftest_harness selftests: harness: Add kselftest harness selftest 2025-05-21 15:32:27 +02:00
kvm KVM/arm64 changes for 6.17, take #2 2025-08-29 12:57:31 -04:00
landlock selftests/landlock: Add test to check rule tied to covered mount point 2025-06-19 13:55:41 +02:00
lib lib/prime_numbers: KUnit test should not select PRIME_NUMBERS 2025-04-15 13:50:43 -07:00
livepatch Livepatching changes for 6.15 2025-03-27 19:26:10 -07:00
lkdtm stackleak: Rename STACKLEAK to KSTACK_ERASE 2025-07-21 21:35:01 -07:00
locking
lsm selftests: refactor the lsm flags_overset_lsm_set_self_attr test 2024-12-18 18:14:29 -05:00
media_tests selftest: media_tests: fix trivial UAF typo 2025-01-14 17:06:31 -07:00
membarrier selftests: membarrier: ksft_exit_pass() does not return 2024-05-06 13:57:20 -06:00
memfd selftests/memfd/memfd_test: fix possible NULL pointer dereference 2025-01-25 20:22:44 -08:00
memory-hotplug
mincore 31 hotfixes. 9 are cc:stable and the remainder address post-6.15 issues 2025-04-16 20:07:32 -07:00
mm selftests/mm: fix FORCE_READ to read input value correctly 2025-08-27 22:45:42 -07:00
module selftests: find_symbol: Actually use load_mod() parameter 2024-11-28 11:17:38 -08:00
mount
mount_setattr selftests/mount_setattr: add smoke tests for open_tree_attr(2) bug 2025-08-11 14:51:49 +02:00
move_mount_set_group
mqueue selftests/mqueue: fix 5 warnings about signed/unsigned mismatches 2024-06-24 22:25:03 -07:00
mseal_system_mappings selftest: test system mappings are sealed 2025-04-01 15:17:16 -07:00
nci selftests: nci: Fix "Electrnoics" to "Electronics" 2025-05-20 18:13:43 -07:00
net selftests: traceroute: Add VRF tests 2025-09-11 12:22:38 +02:00
nolibc selftests/nolibc: add x32 test configuration 2025-07-13 16:58:41 +02:00
ntb
openat2 selftests/openat2: fix clang build failures: -static-libasan, LOCAL_HDRS 2024-06-11 15:00:11 -06:00
pci_endpoint selftests: pci_endpoint: Add doorbell test case 2025-07-24 16:51:47 -05:00
pcie_bwctrl selftests/pcie_bwctrl: Fix test progs list 2025-04-18 08:23:22 -05:00
perf_events selftests/perf_events: Add a mmap() correctness test 2025-08-05 21:55:29 +02:00
pid_namespace selftests: pid_namespace: add missing sys/mount.h include in pid_max.c 2025-05-09 13:12:33 -06:00
pidfd linux_kselftest-next-6.17-rc1 2025-07-29 12:48:53 -07:00
power_supply selftests: power_supply: Make it POSIX-compliant 2024-05-06 13:57:20 -06:00
powerpc powerpc updates for 6.15 2025-03-27 19:39:08 -07:00
prctl
proc selftests/proc: fix string literal warning in proc-maps-race.c 2025-08-11 23:00:59 -07:00
pstore
ptp testptp: add option to enable external timestamping edges 2025-06-23 13:32:14 +01:00
ptrace Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
rcutorture Merge branches 'rcu-exp.23.07.2025', 'rcu.22.07.2025', 'torture-scripts.16.07.2025', 'srcu.19.07.2025', 'rcu.nocb.18.07.2025' and 'refscale.07.07.2025' into rcu.merge.23.07.2025 2025-07-23 21:42:20 +05:30
resctrl selftests/resctrl: Discover SNC kernel support and adjust messages 2025-01-14 17:06:32 -07:00
ring-buffer selftests/ring-buffer: Add test for out-of-bound pgoff mapping 2025-01-14 17:06:32 -07:00
riscv selftests: riscv: fix v_exec_initval_nolibc.c 2025-04-01 07:03:04 +00:00
rlimits
rseq rseq/selftests: Fix namespace collision with rseq UAPI header 2025-03-19 21:26:24 +01:00
rtc rtc: remove 'setdate' test program 2025-04-01 15:25:15 +02:00
rust selftests: rust: config: disable GCC_PLUGINS 2024-08-11 17:32:55 -06:00
safesetid
sched sched/debug: Remove CONFIG_SCHED_DEBUG from self-test config files 2025-03-19 22:23:24 +01:00
sched_ext selftests/sched_ext: Remove duplicate sched.h header 2025-08-11 08:24:08 -10:00
seccomp selftests: seccomp: Fix "performace" to "performance" 2025-05-20 13:16:39 -07:00
sgx selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk 2024-07-10 12:14:51 -07:00
signal selftests: Add a test mangling with uc_sigmask 2024-10-29 01:01:49 -06:00
size
sparc64
splice
static_keys
sync selftests: sync: ksft_exit_pass() does not return 2024-05-06 13:57:21 -06:00
syscall_user_dispatch selftests: Add tests for PR_SYS_DISPATCH_INCLUSIVE_ON 2025-06-13 18:36:39 +02:00
sysctl sysctl: Nixify sysctl.sh 2025-07-23 11:56:02 +02:00
tc-testing selftests/tc-testing: Check backlog stats in gso_skb case 2025-08-14 17:52:29 -07:00
tdx
thermal/intel selftests/thermal: remove duplicate newlines in perror calls 2025-07-19 19:08:28 -07:00
timens selftests/timens: timerfd: Use correct clockid type in tclock_gettime() 2025-05-09 13:12:57 -06:00
timers selftests/timers: Improve skew_consistency by testing with other clockids 2025-03-21 19:16:18 +01:00
tmpfs selftests: tmpfs: Add kselftest support to tmpfs 2025-01-14 17:06:32 -07:00
tpm2 selftests: tpm2: test_smoke: use POSIX-conformant expression operator 2025-04-08 14:56:13 -06:00
tty kselftest/tty: Report a consistent test name for the one test we run 2024-05-06 13:57:19 -06:00
turbostat tools/power turbostat: Add selftests for added perf counters 2024-07-26 13:51:25 -04:00
ublk ublk selftests: add --no_ublk_fixed_fd for not using registered ublk char device 2025-08-28 07:56:57 -06:00
uevent
user_events selftests/user_events: Fix failures caused by test code 2025-02-24 16:37:17 -07:00
vDSO selftests: vDSO: vdso_standalone_test_x86: Replace source file with symlink 2025-07-01 15:50:43 +02:00
vsock selftests/vsock: add initial vmtest.sh for vsock 2025-06-11 13:17:59 -07:00
watchdog selftests/watchdog-test: Fix system accidentally reset after watchdog-test 2024-10-28 21:34:43 -06:00
wireguard selftests: net: Enable legacy netfilter legacy options. 2025-07-25 18:38:55 +02:00
x86 selftests/x86: Add a test to detect infinite SIGTRAP handler loop 2025-06-09 08:52:06 -07:00
zram selftests/zram: gitignore output file 2025-01-14 17:06:31 -07:00
.gitignore selftests: tpm2: create a dedicated .gitignore 2025-04-08 14:56:13 -06:00
gen_kselftest_tar.sh
kselftest_deps.sh selftests: kselftest_deps: fix l5_test() empty variable 2024-05-08 16:46:41 -06:00
kselftest_harness.h selftests: harness: Rename is_signed_type() to avoid collision with overflow.h 2025-08-20 08:04:09 -07:00
kselftest_install.sh
kselftest_module.h
kselftest.h Revert "selftests: kselftest: Fix build failure with NOLIBC" 2025-02-26 22:13:48 +01:00
lib.mk selftests: Add headers target 2025-03-03 20:00:12 +01:00
Makefile nolibc changes for v6.17 2025-07-29 15:32:02 -07:00
run_kselftest.sh selftests/run_kselftest.sh: Use readlink if realpath is not available 2025-05-15 16:52:47 -06:00