1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 3 4 ALL_TESTS=" 5 ping_ipv4 6 ping_ipv6 7 " 8 NUM_NETIFS=4 9 source lib.sh 10 11 h1_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 18 h1_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 25 h2_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 32 h2_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 39 router_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 52 router_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 64 setup_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 82 cleanup() 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 96 ping_ipv4() 97 { 98 ping_test $h1 192.0.2.130 99 } 100 101 ping_ipv6() 102 { 103 ping6_test $h1 2001:db8:2::2 104 } 105 106 trap cleanup EXIT 107 108 setup_prepare 109 setup_wait 110 111 tests_run 112 113 exit $EXIT_STATUS 114