0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 ALL_TESTS="
0027 ping_ipv4
0028 ping_ipv6
0029 "
0030 NUM_NETIFS=4
0031 source lib.sh
0032
0033 h1_create()
0034 {
0035 vrf_create "vrf-h1"
0036 ip link set dev vrf-h1 up
0037
0038 ip link set dev $h1 up
0039 vlan_create $h1 1 vrf-h1 192.0.2.2/24 2001:db8:1::2/64
0040
0041 ip route add 198.51.100.0/24 vrf vrf-h1 nexthop via 192.0.2.1
0042 ip route add 2001:db8:2::/64 vrf vrf-h1 nexthop via 2001:db8:1::1
0043 }
0044
0045 h1_destroy()
0046 {
0047 ip route del 2001:db8:2::/64 vrf vrf-h1
0048 ip route del 198.51.100.0/24 vrf vrf-h1
0049
0050 vlan_destroy $h1 1
0051 ip link set dev $h1 down
0052
0053 ip link set dev vrf-h1 down
0054 vrf_destroy "vrf-h1"
0055 }
0056
0057 h2_create()
0058 {
0059 vrf_create "vrf-h2"
0060 ip link set dev vrf-h2 up
0061
0062 ip link set dev $h2 up
0063 vlan_create $h2 1 vrf-h2 198.51.100.2/24 2001:db8:2::2/64
0064
0065 ip route add 192.0.2.0/24 vrf vrf-h2 nexthop via 198.51.100.1
0066 ip route add 2001:db8:1::/64 vrf vrf-h2 nexthop via 2001:db8:2::1
0067 }
0068
0069 h2_destroy()
0070 {
0071 ip route del 2001:db8:1::/64 vrf vrf-h2
0072 ip route del 192.0.2.0/24 vrf vrf-h2
0073
0074 vlan_destroy $h2 1
0075 ip link set dev $h2 down
0076
0077 ip link set dev vrf-h2 down
0078 vrf_destroy "vrf-h2"
0079 }
0080
0081 router_create()
0082 {
0083 ip link set dev $rp1 up
0084 ip link add link $rp1 name $rp1.1 up type vlan id 1
0085
0086 ip address add 192.0.2.1/24 dev $rp1.1
0087 ip address add 2001:db8:1::1/64 dev $rp1.1
0088
0089 ip link set dev $rp2 up
0090 ip link add link $rp2 name $rp2.1 up type vlan id 1
0091
0092 ip address add 198.51.100.1/24 dev $rp2.1
0093 ip address add 2001:db8:2::1/64 dev $rp2.1
0094 }
0095
0096 router_destroy()
0097 {
0098 ip address del 2001:db8:2::1/64 dev $rp2.1
0099 ip address del 198.51.100.1/24 dev $rp2.1
0100
0101 ip link del dev $rp2.1
0102 ip link set dev $rp2 down
0103
0104 ip address del 2001:db8:1::1/64 dev $rp1.1
0105 ip address del 192.0.2.1/24 dev $rp1.1
0106
0107 ip link del dev $rp1.1
0108 ip link set dev $rp1 down
0109 }
0110
0111 setup_prepare()
0112 {
0113 h1=${NETIFS[p1]}
0114 rp1=${NETIFS[p2]}
0115
0116 rp2=${NETIFS[p3]}
0117 h2=${NETIFS[p4]}
0118
0119 vrf_prepare
0120
0121 h1_create
0122 h2_create
0123
0124 router_create
0125
0126 forwarding_enable
0127 }
0128
0129 cleanup()
0130 {
0131 pre_cleanup
0132
0133 forwarding_restore
0134
0135 router_destroy
0136
0137 h2_destroy
0138 h1_destroy
0139
0140 vrf_cleanup
0141 }
0142
0143 ping_ipv4()
0144 {
0145 ping_test $h1.1 198.51.100.2
0146 }
0147
0148 ping_ipv6()
0149 {
0150 ping6_test $h1.1 2001:db8:2::2
0151 }
0152
0153 trap cleanup EXIT
0154
0155 setup_prepare
0156 setup_wait
0157
0158 tests_run
0159
0160 exit $EXIT_STATUS