Commit ceec9f27 authored by Guillaume Nault's avatar Guillaume Nault Committed by David S. Miller
Browse files

selftests: fcnal: Test SO_DONTROUTE on raw and ping sockets.



Use ping -r to test the kernel behaviour with raw and ping sockets
having the SO_DONTROUTE option.

Since ipv4_ping_novrf() is called with different values of
net.ipv4.ping_group_range, then it tests both raw and ping sockets
(ping uses ping sockets if its user ID belongs to ping_group_range
and raw sockets otherwise).

With both socket types, sending packets to a neighbour (on link) host,
should work. When the host is behind a router, sending should fail.

Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a431327c
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -584,6 +584,20 @@ ipv4_ping_novrf()
		log_test_addr ${a} $? 0 "ping out, address bind"
	done

	#
	# out, but don't use gateway if peer is not on link
	#
	a=${NSB_IP}
	log_start
	run_cmd ping -c 1 -w 1 -r ${a}
	log_test_addr ${a} $? 0 "ping out (don't route), peer on link"

	a=${NSB_LO_IP}
	log_start
	show_hint "Fails since peer is not on link"
	run_cmd ping -c 1 -w 1 -r ${a}
	log_test_addr ${a} $? 1 "ping out (don't route), peer not on link"

	#
	# in
	#