1#!/bin/bash 2# SPDX-License-Identifier: GPL-2.0 3 4ALL_TESTS=" 5 ping_ipv4 6 ping_ipv6 7" 8NUM_NETIFS=4 9source lib.sh 10 11h1_create() 12{ 13 simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/64 14 ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2 15 ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2 16} 17 18h1_destroy() 19{ 20 ip -6 route del 2001:db8:2::/64 vrf v$h1 21 ip -4 route del 192.0.2.128/28 vrf v$h1 22 simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/64 23} 24 25h2_create() 26{ 27 simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64 28 ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129 29 ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1 30} 31 32h2_destroy() 33{ 34 ip -6 route del 2001:db8:1::/64 vrf v$h2 35 ip -4 route del 192.0.2.0/28 vrf v$h2 36 simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64 37} 38 39router_create() 40{ 41 ip link add name br1 type bridge vlan_filtering 1 42 ip link set dev br1 up 43 44 ip link set dev $swp1 master br1 45 ip link set dev $swp1 up 46 __addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64 47 48 ip link set dev $swp2 up 49 __addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64 50} 51 52router_destroy() 53{ 54 __addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64 55 ip link set dev $swp2 down 56 57 __addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64 58 ip link set dev $swp1 down 59 ip link set dev $swp1 nomaster 60 61 ip link del dev br1 62} 63 64setup_prepare() 65{ 66 h1=${NETIFS[p1]} 67 swp1=${NETIFS[p2]} 68 69 swp2=${NETIFS[p3]} 70 h2=${NETIFS[p4]} 71 72 vrf_prepare 73 74 h1_create 75 h2_create 76 77 router_create 78 79 forwarding_enable 80} 81 82cleanup() 83{ 84 pre_cleanup 85 86 forwarding_restore 87 88 router_destroy 89 90 h2_destroy 91 h1_destroy 92 93 vrf_cleanup 94} 95 96ping_ipv4() 97{ 98 ping_test $h1 192.0.2.130 99} 100 101ping_ipv6() 102{ 103 ping6_test $h1 2001:db8:2::2 104} 105 106trap cleanup EXIT 107 108setup_prepare 109setup_wait 110 111tests_run 112 113exit $EXIT_STATUS 114