lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <970039e7-1c13-e6d7-cb70-53af92eb9958@redhat.com>
Date:   Thu, 15 Sep 2022 10:09:05 -0400
From:   Jonathan Toppins <jtoppins@...hat.com>
To:     Hangbin Liu <liuhangbin@...il.com>, netdev@...r.kernel.org
Cc:     Jay Vosburgh <j.vosburgh@...il.com>,
        "David S . Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>,
        David Ahern <dsahern@...il.com>
Subject: Re: [PATCH net] selftests/bonding: add a test for bonding lladdr
 target

On 9/15/22 05:42, Hangbin Liu wrote:
> This is a regression test for commit 592335a4164c ("bonding: accept
> unsolicited NA message") and commit b7f14132bf58 ("bonding: use unspecified
> address if no available link local address"). When the bond interface
> up and no available link local address, unspecified address(::) is used to
> send the NS message. The unsolicited NA message should also be accepted
> for validation.
> 
> Signed-off-by: Hangbin Liu <liuhangbin@...il.com>
Acked-by: Jonathan Toppins <jtoppins@...hat.com>

> ---
>   .../selftests/drivers/net/bonding/Makefile    |  1 +
>   .../drivers/net/bonding/bond-lladdr-target.sh | 65 +++++++++++++++++++
>   2 files changed, 66 insertions(+)
>   create mode 100755 tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh
> 
> diff --git a/tools/testing/selftests/drivers/net/bonding/Makefile b/tools/testing/selftests/drivers/net/bonding/Makefile
> index ab6c54b12098..d209f7a98b6c 100644
> --- a/tools/testing/selftests/drivers/net/bonding/Makefile
> +++ b/tools/testing/selftests/drivers/net/bonding/Makefile
> @@ -2,5 +2,6 @@
>   # Makefile for net selftests
>   
>   TEST_PROGS := bond-break-lacpdu-tx.sh
> +TEST_PROGS += bond-lladdr-target.sh
>   
>   include ../../../lib.mk
> diff --git a/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh b/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh
> new file mode 100755
> index 000000000000..89af402fabbe
> --- /dev/null
> +++ b/tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh
> @@ -0,0 +1,65 @@
> +#!/bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +
> +# Regression Test:
> +#   Verify bond interface could up when set IPv6 link local address target.
> +#
> +#  +----------------+
> +#  |      br0       |
> +#  |       |        |    sw
> +#  | veth0   veth1  |
> +#  +---+-------+----+
> +#      |       |
> +#  +---+-------+----+
> +#  | veth0   veth1  |
> +#  |       |        |    host
> +#  |     bond0      |
> +#  +----------------+
> +#
> +# We use veths instead of physical interfaces
> +sw="sw-$(mktemp -u XXXXXX)"
> +host="ns-$(mktemp -u XXXXXX)"
> +
> +cleanup()
> +{
> +	ip netns del $sw
> +	ip netns del $host
> +}
> +
> +trap cleanup 0 1 2
> +
> +ip netns add $sw
> +ip netns add $host
> +
> +ip -n $host link add veth0 type veth peer name veth0 netns $sw
> +ip -n $host link add veth1 type veth peer name veth1 netns $sw
> +
> +ip -n $sw link add br0 type bridge
> +ip -n $sw link set br0 up
> +sw_lladdr=$(ip -n $sw addr show br0 | awk '/fe80/{print $2}' | cut -d'/' -f1)
> +# sleep some time to make sure bridge lladdr pass DAD
> +sleep 2
> +
> +ip -n $host link add bond0 type bond mode 1 ns_ip6_target ${sw_lladdr} \
> +	arp_validate 3 arp_interval 1000
> +# add a lladdr for bond to make sure there is a route to target
> +ip -n $host addr add fe80::beef/64 dev bond0
> +ip -n $host link set bond0 up
> +ip -n $host link set veth0 master bond0
> +ip -n $host link set veth1 master bond0
> +
> +ip -n $sw link set veth0 master br0
> +ip -n $sw link set veth1 master br0
> +ip -n $sw link set veth0 up
> +ip -n $sw link set veth1 up
> +
> +sleep 5
> +
> +rc=0
> +if ip -n $host link show bond0 | grep -q LOWER_UP; then
> +	echo "PASS"
> +else
> +	echo "FAIL"
> +	rc=1
> +fi
> +exit $rc

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ