| From 782c72af567fc2ef09bd7615d0307f24de72c7e0 Mon Sep 17 00:00:00 2001 |
| From: "Jason A. Donenfeld" <Jason@zx2c4.com> |
| Date: Mon, 29 Nov 2021 10:39:22 -0500 |
| Subject: wireguard: selftests: actually test for routing loops |
| |
| From: Jason A. Donenfeld <Jason@zx2c4.com> |
| |
| commit 782c72af567fc2ef09bd7615d0307f24de72c7e0 upstream. |
| |
| We previously removed the restriction on looping to self, and then added |
| a test to make sure the kernel didn't blow up during a routing loop. The |
| kernel didn't blow up, thankfully, but on certain architectures where |
| skb fragmentation is easier, such as ppc64, the skbs weren't actually |
| being discarded after a few rounds through. But the test wasn't catching |
| this. So actually test explicitly for massive increases in tx to see if |
| we have a routing loop. Note that the actual loop problem will need to |
| be addressed in a different commit. |
| |
| Fixes: b673e24aad36 ("wireguard: socket: remove errant restriction on looping to self") |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| tools/testing/selftests/wireguard/netns.sh | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/tools/testing/selftests/wireguard/netns.sh |
| +++ b/tools/testing/selftests/wireguard/netns.sh |
| @@ -276,7 +276,11 @@ n0 ping -W 1 -c 1 192.168.241.2 |
| n1 wg set wg0 peer "$pub2" endpoint 192.168.241.2:7 |
| ip2 link del wg0 |
| ip2 link del wg1 |
| -! n0 ping -W 1 -c 10 -f 192.168.241.2 || false # Should not crash kernel |
| +read _ _ tx_bytes_before < <(n0 wg show wg1 transfer) |
| +! n0 ping -W 1 -c 10 -f 192.168.241.2 || false |
| +sleep 1 |
| +read _ _ tx_bytes_after < <(n0 wg show wg1 transfer) |
| +(( tx_bytes_after - tx_bytes_before < 70000 )) |
| |
| ip0 link del wg1 |
| ip1 link del wg0 |