Revision 35a79e64de29e8d57a5989aac57611c0cd29e13e authored by Xin Long on 16 February 2022, 05:20:52 UTC, committed by David S. Miller on 17 February 2022, 15:01:20 UTC
When 'ping' changes to use PING socket instead of RAW socket by: # sysctl -w net.ipv4.ping_group_range="0 100" There is another regression caused when matching sk_bound_dev_if and dif, RAW socket is using inet_iif() while PING socket lookup is using skb->dev->ifindex, the cmd below fails due to this: # ip link add dummy0 type dummy # ip link set dummy0 up # ip addr add 192.168.111.1/24 dev dummy0 # ping -I dummy0 192.168.111.1 -c1 The issue was also reported on: https://github.com/iputils/iputils/issues/104 But fixed in iputils in a wrong way by not binding to device when destination IP is on device, and it will cause some of kselftests to fail, as Jianlin noticed. This patch is to use inet(6)_iif and inet(6)_sdif to get dif and sdif for PING socket, and keep consistent with RAW socket. Fixes: c319b4d76b9e ("net: ipv4: add IPPROTO_ICMP socket kind") Reported-by: Jianlin Shi <jishi@redhat.com> Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 21e8a96
File | Mode | Size |
---|---|---|
bpf | ||
cgroup | ||
configs | ||
debug | ||
dma | ||
entry | ||
events | ||
futex | ||
gcov | ||
irq | ||
kcsan | ||
livepatch | ||
locking | ||
power | ||
printk | ||
rcu | ||
sched | ||
time | ||
trace | ||
.gitignore | -rw-r--r-- | 67 bytes |
Kconfig.freezer | -rw-r--r-- | 92 bytes |
Kconfig.hz | -rw-r--r-- | 1.7 KB |
Kconfig.locks | -rw-r--r-- | 4.9 KB |
Kconfig.preempt | -rw-r--r-- | 4.7 KB |
Makefile | -rw-r--r-- | 5.2 KB |
acct.c | -rw-r--r-- | 15.4 KB |
async.c | -rw-r--r-- | 9.2 KB |
audit.c | -rw-r--r-- | 64.8 KB |
audit.h | -rw-r--r-- | 10.7 KB |
audit_fsnotify.c | -rw-r--r-- | 5.2 KB |
audit_tree.c | -rw-r--r-- | 25.6 KB |
audit_watch.c | -rw-r--r-- | 13.7 KB |
auditfilter.c | -rw-r--r-- | 34.4 KB |
auditsc.c | -rw-r--r-- | 80.5 KB |
backtracetest.c | -rw-r--r-- | 1.9 KB |
bounds.c | -rw-r--r-- | 751 bytes |
capability.c | -rw-r--r-- | 14.8 KB |
cfi.c | -rw-r--r-- | 8.1 KB |
compat.c | -rw-r--r-- | 6.8 KB |
configs.c | -rw-r--r-- | 2.0 KB |
context_tracking.c | -rw-r--r-- | 6.4 KB |
cpu.c | -rw-r--r-- | 65.2 KB |
cpu_pm.c | -rw-r--r-- | 6.1 KB |
crash_core.c | -rw-r--r-- | 11.9 KB |
crash_dump.c | -rw-r--r-- | 1.1 KB |
cred.c | -rw-r--r-- | 24.4 KB |
delayacct.c | -rw-r--r-- | 5.9 KB |
dma.c | -rw-r--r-- | 3.3 KB |
exec_domain.c | -rw-r--r-- | 1.1 KB |
exit.c | -rw-r--r-- | 45.3 KB |
extable.c | -rw-r--r-- | 3.8 KB |
fail_function.c | -rw-r--r-- | 7.0 KB |
fork.c | -rw-r--r-- | 76.9 KB |
freezer.c | -rw-r--r-- | 4.4 KB |
gen_kheaders.sh | -rwxr-xr-x | 3.1 KB |
groups.c | -rw-r--r-- | 4.8 KB |
hung_task.c | -rw-r--r-- | 9.4 KB |
iomem.c | -rw-r--r-- | 4.7 KB |
irq_work.c | -rw-r--r-- | 7.4 KB |
jump_label.c | -rw-r--r-- | 21.4 KB |
kallsyms.c | -rw-r--r-- | 22.2 KB |
kcmp.c | -rw-r--r-- | 5.4 KB |
kcov.c | -rw-r--r-- | 28.2 KB |
kexec.c | -rw-r--r-- | 7.4 KB |
kexec_core.c | -rw-r--r-- | 31.2 KB |
kexec_elf.c | -rw-r--r-- | 11.4 KB |
kexec_file.c | -rw-r--r-- | 33.6 KB |
kexec_internal.h | -rw-r--r-- | 924 bytes |
kheaders.c | -rw-r--r-- | 1.6 KB |
kmod.c | -rw-r--r-- | 5.0 KB |
kprobes.c | -rw-r--r-- | 70.3 KB |
ksysfs.c | -rw-r--r-- | 6.3 KB |
kthread.c | -rw-r--r-- | 41.6 KB |
latencytop.c | -rw-r--r-- | 7.2 KB |
module-internal.h | -rw-r--r-- | 1.2 KB |
module.c | -rw-r--r-- | 121.1 KB |
module_decompress.c | -rw-r--r-- | 5.6 KB |
module_signature.c | -rw-r--r-- | 1.1 KB |
module_signing.c | -rw-r--r-- | 1.1 KB |
notifier.c | -rw-r--r-- | 15.9 KB |
nsproxy.c | -rw-r--r-- | 12.8 KB |
padata.c | -rw-r--r-- | 27.4 KB |
panic.c | -rw-r--r-- | 18.1 KB |
params.c | -rw-r--r-- | 23.1 KB |
pid.c | -rw-r--r-- | 18.2 KB |
pid_namespace.c | -rw-r--r-- | 11.3 KB |
profile.c | -rw-r--r-- | 13.3 KB |
ptrace.c | -rw-r--r-- | 37.5 KB |
range.c | -rw-r--r-- | 3.0 KB |
reboot.c | -rw-r--r-- | 21.5 KB |
regset.c | -rw-r--r-- | 1.9 KB |
relay.c | -rw-r--r-- | 30.0 KB |
resource.c | -rw-r--r-- | 48.9 KB |
resource_kunit.c | -rw-r--r-- | 4.3 KB |
rseq.c | -rw-r--r-- | 10.3 KB |
scftorture.c | -rw-r--r-- | 20.0 KB |
scs.c | -rw-r--r-- | 2.8 KB |
seccomp.c | -rw-r--r-- | 61.9 KB |
signal.c | -rw-r--r-- | 123.0 KB |
smp.c | -rw-r--r-- | 33.5 KB |
smpboot.c | -rw-r--r-- | 11.7 KB |
smpboot.h | -rw-r--r-- | 640 bytes |
softirq.c | -rw-r--r-- | 23.6 KB |
stackleak.c | -rw-r--r-- | 4.1 KB |
stacktrace.c | -rw-r--r-- | 10.4 KB |
static_call.c | -rw-r--r-- | 12.5 KB |
stop_machine.c | -rw-r--r-- | 17.8 KB |
sys.c | -rw-r--r-- | 64.4 KB |
sys_ni.c | -rw-r--r-- | 10.1 KB |
sysctl-test.c | -rw-r--r-- | 10.7 KB |
sysctl.c | -rw-r--r-- | 67.7 KB |
task_work.c | -rw-r--r-- | 4.6 KB |
taskstats.c | -rw-r--r-- | 15.2 KB |
torture.c | -rw-r--r-- | 25.3 KB |
tracepoint.c | -rw-r--r-- | 20.3 KB |
tsacct.c | -rw-r--r-- | 4.8 KB |
ucount.c | -rw-r--r-- | 9.1 KB |
uid16.c | -rw-r--r-- | 5.1 KB |
uid16.h | -rw-r--r-- | 442 bytes |
umh.c | -rw-r--r-- | 15.1 KB |
up.c | -rw-r--r-- | 1.5 KB |
user-return-notifier.c | -rw-r--r-- | 1.3 KB |
user.c | -rw-r--r-- | 5.9 KB |
user_namespace.c | -rw-r--r-- | 35.3 KB |
usermode_driver.c | -rw-r--r-- | 4.3 KB |
utsname.c | -rw-r--r-- | 3.8 KB |
utsname_sysctl.c | -rw-r--r-- | 3.2 KB |
watch_queue.c | -rw-r--r-- | 16.4 KB |
watchdog.c | -rw-r--r-- | 22.4 KB |
watchdog_hld.c | -rw-r--r-- | 7.7 KB |
workqueue.c | -rw-r--r-- | 168.4 KB |
workqueue_internal.h | -rw-r--r-- | 2.4 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...