mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
When everything is configured, VLAN membership on the bridge in this
selftest are as follows:
# bridge vlan show
port vlan-id
swp2 1 PVID Egress Untagged
555
br1 1 Egress Untagged
555 PVID Egress Untagged
Note that it is possible for untagged traffic to just flow through as VLAN
1, instead of using VLAN 555 as intended by the test. This configuration
seems too close to "works by accident", and it would be better to just shut
out VLAN 1 altogether.
To that end, configure vlan_default_pvid of 0:
# bridge vlan show
port vlan-id
swp2 555
br1 555 PVID Egress Untagged
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
155 lines
3.7 KiB
Bash
Executable File
155 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
# +------------------------+ +----------------------+
|
|
# | H1 (vrf) | | H2 (vrf) |
|
|
# | + $h1.555 | | + $h2 |
|
|
# | | 192.0.2.1/28 | | | 192.0.2.130/28 |
|
|
# | | 2001:db8:1::1/64 | | | 2001:db8:2::2/64 |
|
|
# | | | | | |
|
|
# | + $h1 | | | |
|
|
# +----|-------------------+ +--|-------------------+
|
|
# | |
|
|
# +----|--------------------------------------------------|-------------------+
|
|
# | SW | | |
|
|
# | +--|-------------------------------+ + $swp2 |
|
|
# | | + $swp1 | 192.0.2.129/28 |
|
|
# | | vid 555 | 2001:db8:2::1/64 |
|
|
# | | | |
|
|
# | | + BR1 (802.1q) | |
|
|
# | | vid 555 pvid untagged | |
|
|
# | | 192.0.2.2/28 | |
|
|
# | | 2001:db8:1::2/64 | |
|
|
# | +----------------------------------+ |
|
|
# +---------------------------------------------------------------------------+
|
|
|
|
ALL_TESTS="
|
|
ping_ipv4
|
|
ping_ipv6
|
|
vlan
|
|
"
|
|
NUM_NETIFS=4
|
|
source lib.sh
|
|
|
|
h1_create()
|
|
{
|
|
simple_if_init $h1
|
|
vlan_create $h1 555 v$h1 192.0.2.1/28 2001:db8:1::1/64
|
|
ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2
|
|
ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
|
|
}
|
|
|
|
h1_destroy()
|
|
{
|
|
ip -6 route del 2001:db8:2::/64 vrf v$h1
|
|
ip -4 route del 192.0.2.128/28 vrf v$h1
|
|
vlan_destroy $h1 555
|
|
simple_if_fini $h1
|
|
}
|
|
|
|
h2_create()
|
|
{
|
|
simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64
|
|
ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129
|
|
ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
|
|
}
|
|
|
|
h2_destroy()
|
|
{
|
|
ip -6 route del 2001:db8:1::/64 vrf v$h2
|
|
ip -4 route del 192.0.2.0/28 vrf v$h2
|
|
simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64
|
|
}
|
|
|
|
router_create()
|
|
{
|
|
ip link add name br1 type bridge vlan_filtering 1 vlan_default_pvid 0
|
|
ip link set dev br1 up
|
|
|
|
ip link set dev $swp1 master br1
|
|
ip link set dev $swp1 up
|
|
|
|
bridge vlan add dev br1 vid 555 self pvid untagged
|
|
bridge vlan add dev $swp1 vid 555
|
|
|
|
__addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64
|
|
|
|
ip link set dev $swp2 up
|
|
__addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64
|
|
}
|
|
|
|
router_destroy()
|
|
{
|
|
__addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64
|
|
ip link set dev $swp2 down
|
|
|
|
__addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64
|
|
ip link set dev $swp1 down
|
|
ip link set dev $swp1 nomaster
|
|
|
|
ip link del dev br1
|
|
}
|
|
|
|
setup_prepare()
|
|
{
|
|
h1=${NETIFS[p1]}
|
|
swp1=${NETIFS[p2]}
|
|
|
|
swp2=${NETIFS[p3]}
|
|
h2=${NETIFS[p4]}
|
|
|
|
vrf_prepare
|
|
|
|
h1_create
|
|
h2_create
|
|
|
|
router_create
|
|
|
|
forwarding_enable
|
|
}
|
|
|
|
cleanup()
|
|
{
|
|
pre_cleanup
|
|
|
|
forwarding_restore
|
|
|
|
router_destroy
|
|
|
|
h2_destroy
|
|
h1_destroy
|
|
|
|
vrf_cleanup
|
|
}
|
|
|
|
vlan()
|
|
{
|
|
RET=0
|
|
|
|
bridge vlan add dev br1 vid 333 self
|
|
check_err $? "Can't add a non-PVID VLAN"
|
|
bridge vlan del dev br1 vid 333 self
|
|
check_err $? "Can't remove a non-PVID VLAN"
|
|
|
|
log_test "vlan"
|
|
}
|
|
|
|
ping_ipv4()
|
|
{
|
|
ping_test $h1 192.0.2.130
|
|
}
|
|
|
|
ping_ipv6()
|
|
{
|
|
ping6_test $h1 2001:db8:2::2
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
setup_prepare
|
|
setup_wait
|
|
|
|
tests_run
|
|
|
|
exit $EXIT_STATUS
|