Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: forwarding: Add router test with VID 1

Previous patches made it possible to setup VLAN devices with VID 1 over
mlxsw ports. Verify this functionality actually works by conducting a
simple router test over VID 1.

Adding this test as a generic test since it can be run using veth pairs
and it can also be useful for other physical devices where VID 1 was
considered reserved (knowingly or not).

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Ido Schimmel and committed by
David S. Miller
03a84ea3 29b1e34e

+135
+135
tools/testing/selftests/net/forwarding/router_vid_1.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: GPL-2.0 3 + 4 + ALL_TESTS="ping_ipv4 ping_ipv6" 5 + NUM_NETIFS=4 6 + source lib.sh 7 + 8 + h1_create() 9 + { 10 + vrf_create "vrf-h1" 11 + ip link set dev vrf-h1 up 12 + 13 + ip link set dev $h1 up 14 + vlan_create $h1 1 vrf-h1 192.0.2.2/24 2001:db8:1::2/64 15 + 16 + ip route add 198.51.100.0/24 vrf vrf-h1 nexthop via 192.0.2.1 17 + ip route add 2001:db8:2::/64 vrf vrf-h1 nexthop via 2001:db8:1::1 18 + } 19 + 20 + h1_destroy() 21 + { 22 + ip route del 2001:db8:2::/64 vrf vrf-h1 23 + ip route del 198.51.100.0/24 vrf vrf-h1 24 + 25 + vlan_destroy $h1 1 26 + ip link set dev $h1 down 27 + 28 + ip link set dev vrf-h1 down 29 + vrf_destroy "vrf-h1" 30 + } 31 + 32 + h2_create() 33 + { 34 + vrf_create "vrf-h2" 35 + ip link set dev vrf-h2 up 36 + 37 + ip link set dev $h2 up 38 + vlan_create $h2 1 vrf-h2 198.51.100.2/24 2001:db8:2::2/64 39 + 40 + ip route add 192.0.2.0/24 vrf vrf-h2 nexthop via 198.51.100.1 41 + ip route add 2001:db8:1::/64 vrf vrf-h2 nexthop via 2001:db8:2::1 42 + } 43 + 44 + h2_destroy() 45 + { 46 + ip route del 2001:db8:1::/64 vrf vrf-h2 47 + ip route del 192.0.2.0/24 vrf vrf-h2 48 + 49 + vlan_destroy $h2 1 50 + ip link set dev $h2 down 51 + 52 + ip link set dev vrf-h2 down 53 + vrf_destroy "vrf-h2" 54 + } 55 + 56 + router_create() 57 + { 58 + ip link set dev $rp1 up 59 + ip link add link $rp1 name $rp1.1 up type vlan id 1 60 + 61 + ip address add 192.0.2.1/24 dev $rp1.1 62 + ip address add 2001:db8:1::1/64 dev $rp1.1 63 + 64 + ip link set dev $rp2 up 65 + ip link add link $rp2 name $rp2.1 up type vlan id 1 66 + 67 + ip address add 198.51.100.1/24 dev $rp2.1 68 + ip address add 2001:db8:2::1/64 dev $rp2.1 69 + } 70 + 71 + router_destroy() 72 + { 73 + ip address del 2001:db8:2::1/64 dev $rp2.1 74 + ip address del 198.51.100.1/24 dev $rp2.1 75 + 76 + ip link del dev $rp2.1 77 + ip link set dev $rp2 down 78 + 79 + ip address del 2001:db8:1::1/64 dev $rp1.1 80 + ip address del 192.0.2.1/24 dev $rp1.1 81 + 82 + ip link del dev $rp1.1 83 + ip link set dev $rp1 down 84 + } 85 + 86 + setup_prepare() 87 + { 88 + h1=${NETIFS[p1]} 89 + rp1=${NETIFS[p2]} 90 + 91 + rp2=${NETIFS[p3]} 92 + h2=${NETIFS[p4]} 93 + 94 + vrf_prepare 95 + 96 + h1_create 97 + h2_create 98 + 99 + router_create 100 + 101 + forwarding_enable 102 + } 103 + 104 + cleanup() 105 + { 106 + pre_cleanup 107 + 108 + forwarding_restore 109 + 110 + router_destroy 111 + 112 + h2_destroy 113 + h1_destroy 114 + 115 + vrf_cleanup 116 + } 117 + 118 + ping_ipv4() 119 + { 120 + ping_test $h1.1 198.51.100.2 121 + } 122 + 123 + ping_ipv6() 124 + { 125 + ping6_test $h1.1 2001:db8:2::2 126 + } 127 + 128 + trap cleanup EXIT 129 + 130 + setup_prepare 131 + setup_wait 132 + 133 + tests_run 134 + 135 + exit $EXIT_STATUS