0001
0002
0003
0004 ALL_TESTS="
0005 ping_ipv4
0006 ping_ipv6
0007 "
0008 NUM_NETIFS=4
0009 source lib.sh
0010
0011 h1_create()
0012 {
0013 simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/64
0014 ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2
0015 ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
0016 }
0017
0018 h1_destroy()
0019 {
0020 ip -6 route del 2001:db8:2::/64 vrf v$h1
0021 ip -4 route del 192.0.2.128/28 vrf v$h1
0022 simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/64
0023 }
0024
0025 h2_create()
0026 {
0027 simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64
0028 ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129
0029 ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
0030 }
0031
0032 h2_destroy()
0033 {
0034 ip -6 route del 2001:db8:1::/64 vrf v$h2
0035 ip -4 route del 192.0.2.0/28 vrf v$h2
0036 simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64
0037 }
0038
0039 router_create()
0040 {
0041 ip link add name br1 type bridge vlan_filtering 1
0042 ip link set dev br1 up
0043
0044 ip link set dev $swp1 master br1
0045 ip link set dev $swp1 up
0046 __addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64
0047
0048 ip link set dev $swp2 up
0049 __addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64
0050 }
0051
0052 router_destroy()
0053 {
0054 __addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64
0055 ip link set dev $swp2 down
0056
0057 __addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64
0058 ip link set dev $swp1 down
0059 ip link set dev $swp1 nomaster
0060
0061 ip link del dev br1
0062 }
0063
0064 setup_prepare()
0065 {
0066 h1=${NETIFS[p1]}
0067 swp1=${NETIFS[p2]}
0068
0069 swp2=${NETIFS[p3]}
0070 h2=${NETIFS[p4]}
0071
0072 vrf_prepare
0073
0074 h1_create
0075 h2_create
0076
0077 router_create
0078
0079 forwarding_enable
0080 }
0081
0082 cleanup()
0083 {
0084 pre_cleanup
0085
0086 forwarding_restore
0087
0088 router_destroy
0089
0090 h2_destroy
0091 h1_destroy
0092
0093 vrf_cleanup
0094 }
0095
0096 ping_ipv4()
0097 {
0098 ping_test $h1 192.0.2.130
0099 }
0100
0101 ping_ipv6()
0102 {
0103 ping6_test $h1 2001:db8:2::2
0104 }
0105
0106 trap cleanup EXIT
0107
0108 setup_prepare
0109 setup_wait
0110
0111 tests_run
0112
0113 exit $EXIT_STATUS