netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf 0/2] selftests/bpf: fix false failures
@ 2019-10-08 13:10 Jiri Benc
  2019-10-08 13:10 ` [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector Jiri Benc
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Jiri Benc @ 2019-10-08 13:10 UTC (permalink / raw)
  To: bpf, netdev

The test_flow_dissector and test_lwt_ip_encap selftests were failing for me.
It was caused by the tests not being enough system/distro independent.

Jiri Benc (2):
  selftests/bpf: set rp_filter in test_flow_dissector
  selftests/bpf: more compatible nc options in test_lwt_ip_encap

 tools/testing/selftests/bpf/test_flow_dissector.sh | 3 +++
 tools/testing/selftests/bpf/test_lwt_ip_encap.sh   | 6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

-- 
2.18.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector
  2019-10-08 13:10 [PATCH bpf 0/2] selftests/bpf: fix false failures Jiri Benc
@ 2019-10-08 13:10 ` Jiri Benc
  2019-10-08 16:45   ` Petar Penkov
  2019-10-08 13:10 ` [PATCH bpf 2/2] selftests/bpf: more compatible nc options in test_lwt_ip_encap Jiri Benc
  2019-10-08 22:03 ` [PATCH bpf 0/2] selftests/bpf: fix false failures Daniel Borkmann
  2 siblings, 1 reply; 5+ messages in thread
From: Jiri Benc @ 2019-10-08 13:10 UTC (permalink / raw)
  To: bpf, netdev; +Cc: Petar Penkov

Many distributions enable rp_filter. However, the flow dissector test
generates packets that have 1.1.1.1 set as (inner) source address without
this address being reachable. This causes the selftest to fail.

The selftests should not assume a particular initial configuration. Switch
off rp_filter.

Fixes: 50b3ed57dee9 ("selftests/bpf: test bpf flow dissection")
Cc: Petar Penkov <ppenkov@google.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
---
 tools/testing/selftests/bpf/test_flow_dissector.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/testing/selftests/bpf/test_flow_dissector.sh b/tools/testing/selftests/bpf/test_flow_dissector.sh
index d23d4da66b83..e2d06191bd35 100755
--- a/tools/testing/selftests/bpf/test_flow_dissector.sh
+++ b/tools/testing/selftests/bpf/test_flow_dissector.sh
@@ -63,6 +63,9 @@ fi
 
 # Setup
 tc qdisc add dev lo ingress
+echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
+echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
+echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
 
 echo "Testing IPv4..."
 # Drops all IP/UDP packets coming from port 9
-- 
2.18.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH bpf 2/2] selftests/bpf: more compatible nc options in test_lwt_ip_encap
  2019-10-08 13:10 [PATCH bpf 0/2] selftests/bpf: fix false failures Jiri Benc
  2019-10-08 13:10 ` [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector Jiri Benc
@ 2019-10-08 13:10 ` Jiri Benc
  2019-10-08 22:03 ` [PATCH bpf 0/2] selftests/bpf: fix false failures Daniel Borkmann
  2 siblings, 0 replies; 5+ messages in thread
From: Jiri Benc @ 2019-10-08 13:10 UTC (permalink / raw)
  To: bpf, netdev; +Cc: Peter Oskolkov

Out of the three nc implementations widely in use, at least two (BSD netcat
and nmap-ncat) do not support -l combined with -s. Modify the nc invocation
to be accepted by all of them.

Fixes: 17a90a788473 ("selftests/bpf: test that GSO works in lwt_ip_encap")
Cc: Peter Oskolkov <posk@google.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
---
 tools/testing/selftests/bpf/test_lwt_ip_encap.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/bpf/test_lwt_ip_encap.sh b/tools/testing/selftests/bpf/test_lwt_ip_encap.sh
index acf7a74f97cd..59ea56945e6c 100755
--- a/tools/testing/selftests/bpf/test_lwt_ip_encap.sh
+++ b/tools/testing/selftests/bpf/test_lwt_ip_encap.sh
@@ -314,15 +314,15 @@ test_gso()
 	command -v nc >/dev/null 2>&1 || \
 		{ echo >&2 "nc is not available: skipping TSO tests"; return; }
 
-	# listen on IPv*_DST, capture TCP into $TMPFILE
+	# listen on port 9000, capture TCP into $TMPFILE
 	if [ "${PROTO}" == "IPv4" ] ; then
 		IP_DST=${IPv4_DST}
 		ip netns exec ${NS3} bash -c \
-			"nc -4 -l -s ${IPv4_DST} -p 9000 > ${TMPFILE} &"
+			"nc -4 -l -p 9000 > ${TMPFILE} &"
 	elif [ "${PROTO}" == "IPv6" ] ; then
 		IP_DST=${IPv6_DST}
 		ip netns exec ${NS3} bash -c \
-			"nc -6 -l -s ${IPv6_DST} -p 9000 > ${TMPFILE} &"
+			"nc -6 -l -p 9000 > ${TMPFILE} &"
 		RET=$?
 	else
 		echo "    test_gso: unknown PROTO: ${PROTO}"
-- 
2.18.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector
  2019-10-08 13:10 ` [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector Jiri Benc
@ 2019-10-08 16:45   ` Petar Penkov
  0 siblings, 0 replies; 5+ messages in thread
From: Petar Penkov @ 2019-10-08 16:45 UTC (permalink / raw)
  To: Jiri Benc; +Cc: bpf, Networking, Petar Penkov

On Tue, Oct 8, 2019 at 6:11 AM Jiri Benc <jbenc@redhat.com> wrote:
>
> Many distributions enable rp_filter. However, the flow dissector test
> generates packets that have 1.1.1.1 set as (inner) source address without
> this address being reachable. This causes the selftest to fail.
>
> The selftests should not assume a particular initial configuration. Switch
> off rp_filter.
>
> Fixes: 50b3ed57dee9 ("selftests/bpf: test bpf flow dissection")
> Cc: Petar Penkov <ppenkov@google.com>
> Signed-off-by: Jiri Benc <jbenc@redhat.com>

Acked-by: Petar Penkov <ppenkov@google.com>

> ---
>  tools/testing/selftests/bpf/test_flow_dissector.sh | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/tools/testing/selftests/bpf/test_flow_dissector.sh b/tools/testing/selftests/bpf/test_flow_dissector.sh
> index d23d4da66b83..e2d06191bd35 100755
> --- a/tools/testing/selftests/bpf/test_flow_dissector.sh
> +++ b/tools/testing/selftests/bpf/test_flow_dissector.sh
> @@ -63,6 +63,9 @@ fi
>
>  # Setup
>  tc qdisc add dev lo ingress
> +echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
> +echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
> +echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
>
>  echo "Testing IPv4..."
>  # Drops all IP/UDP packets coming from port 9
> --
> 2.18.1
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH bpf 0/2] selftests/bpf: fix false failures
  2019-10-08 13:10 [PATCH bpf 0/2] selftests/bpf: fix false failures Jiri Benc
  2019-10-08 13:10 ` [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector Jiri Benc
  2019-10-08 13:10 ` [PATCH bpf 2/2] selftests/bpf: more compatible nc options in test_lwt_ip_encap Jiri Benc
@ 2019-10-08 22:03 ` Daniel Borkmann
  2 siblings, 0 replies; 5+ messages in thread
From: Daniel Borkmann @ 2019-10-08 22:03 UTC (permalink / raw)
  To: Jiri Benc; +Cc: bpf, netdev

On Tue, Oct 08, 2019 at 03:10:43PM +0200, Jiri Benc wrote:
> The test_flow_dissector and test_lwt_ip_encap selftests were failing for me.
> It was caused by the tests not being enough system/distro independent.
> 
> Jiri Benc (2):
>   selftests/bpf: set rp_filter in test_flow_dissector
>   selftests/bpf: more compatible nc options in test_lwt_ip_encap
> 
>  tools/testing/selftests/bpf/test_flow_dissector.sh | 3 +++
>  tools/testing/selftests/bpf/test_lwt_ip_encap.sh   | 6 +++---
>  2 files changed, 6 insertions(+), 3 deletions(-)

Applied, thanks!

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-08 22:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-08 13:10 [PATCH bpf 0/2] selftests/bpf: fix false failures Jiri Benc
2019-10-08 13:10 ` [PATCH bpf 1/2] selftests/bpf: set rp_filter in test_flow_dissector Jiri Benc
2019-10-08 16:45   ` Petar Penkov
2019-10-08 13:10 ` [PATCH bpf 2/2] selftests/bpf: more compatible nc options in test_lwt_ip_encap Jiri Benc
2019-10-08 22:03 ` [PATCH bpf 0/2] selftests/bpf: fix false failures Daniel Borkmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).