> > .100 br0 .100
> > \ / \ /
> > lan0 lan1
> >
> > $ ip link add dev br0 type bridge vlan_filtering 1
> > $ ip link add dev lan0.100 link lan0 type vlan id 100
> > $ ip link add dev lan1.100 link lan1 type vlan id 100
> > $ ip link set dev lan0 master br0
> > $ ip link set dev lan1 master br0 # This should fail
> >
> > .100 br0
> > \ / \
> > lan0 lan1
> >
> > $ ip link add dev br0 type bridge vlan_filtering 1
> > $ ip link add dev lan0.100 link lan0 type vlan id 100
> > $ ip link set dev lan0 master br0
> > $ ip link set dev lan1 master br0
> > $ bridge vlan add dev lan1 vid 100 # This should fail
>
> diff --git a/tools/testing/selftests/drivers/net/dsa/vlan_validation.sh
> b/tools/testing/selftests/drivers/net/dsa/vlan_validation.sh
Hi Vladimir
Cool to see self tests.
> new file mode 100755
> index 000000000000..445ce17cb925
> --- /dev/null
> +++ b/tools/testing/selftests/drivers/net/dsa/vlan_validation.sh
> @@ -0,0 +1,316 @@
> +#!/bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +
> +NUM_NETIFS=2
> +lib_dir=$(dirname $0)/../../../net/forwarding
> +source $lib_dir/lib.sh
> +
> +eth0=${NETIFS[p1]}
> +eth1=${NETIFS[p2]}
Could these be called lan0 and lan1, so they match the diagrams? I
find eth0 confusing, since that is often the master interface, not a
slave interface.
Andrew