diff options
author | Ido Schimmel <idosch@mellanox.com> | 2018-01-07 05:45:17 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-07 21:29:41 -0500 |
commit | 5adb7683b48e35bc863a37e026dc6038ded30560 (patch) | |
tree | 021eb69420c56692941ec661849e5128aefc1249 /tools | |
parent | 607bd2e502f5528e1aef94e4d6f8252ccc4dbd6a (diff) |
selftests: fib_tests: Add test cases for netdev down
Check that IPv4 and IPv6 react the same when a netdev is being put
administratively down.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/testing/selftests/net/fib_tests.sh | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/tools/testing/selftests/net/fib_tests.sh b/tools/testing/selftests/net/fib_tests.sh index 767d2ab2385d..25ba74f8a37e 100755 --- a/tools/testing/selftests/net/fib_tests.sh +++ b/tools/testing/selftests/net/fib_tests.sh | |||
@@ -120,9 +120,150 @@ fib_unreg_test() | |||
120 | fib_unreg_multipath_test | 120 | fib_unreg_multipath_test |
121 | } | 121 | } |
122 | 122 | ||
123 | fib_down_unicast_test() | ||
124 | { | ||
125 | ret=0 | ||
126 | |||
127 | netns_create "testns" | ||
128 | |||
129 | ip netns exec testns ip link add dummy0 type dummy | ||
130 | ip netns exec testns ip link set dev dummy0 up | ||
131 | |||
132 | ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 | ||
133 | ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 | ||
134 | |||
135 | ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null | ||
136 | check_err $? | ||
137 | ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null | ||
138 | check_err $? | ||
139 | |||
140 | ip netns exec testns ip link set dev dummy0 down | ||
141 | check_err $? | ||
142 | |||
143 | ip netns exec testns ip route get fibmatch 198.51.100.2 &> /dev/null | ||
144 | check_fail $? | ||
145 | ip netns exec testns ip -6 route get fibmatch 2001:db8:1::2 &> /dev/null | ||
146 | check_fail $? | ||
147 | |||
148 | ip netns exec testns ip link del dev dummy0 | ||
149 | |||
150 | ip netns del testns | ||
151 | |||
152 | if [ $ret -ne 0 ]; then | ||
153 | echo "FAIL: unicast route test" | ||
154 | return 1 | ||
155 | fi | ||
156 | echo "PASS: unicast route test" | ||
157 | } | ||
158 | |||
159 | fib_down_multipath_test_do() | ||
160 | { | ||
161 | local down_dev=$1 | ||
162 | local up_dev=$2 | ||
163 | |||
164 | ip netns exec testns ip route get fibmatch 203.0.113.1 \ | ||
165 | oif $down_dev &> /dev/null | ||
166 | check_fail $? | ||
167 | ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 \ | ||
168 | oif $down_dev &> /dev/null | ||
169 | check_fail $? | ||
170 | |||
171 | ip netns exec testns ip route get fibmatch 203.0.113.1 \ | ||
172 | oif $up_dev &> /dev/null | ||
173 | check_err $? | ||
174 | ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 \ | ||
175 | oif $up_dev &> /dev/null | ||
176 | check_err $? | ||
177 | |||
178 | ip netns exec testns ip route get fibmatch 203.0.113.1 | \ | ||
179 | grep $down_dev | grep -q "dead linkdown" | ||
180 | check_err $? | ||
181 | ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 | \ | ||
182 | grep $down_dev | grep -q "dead linkdown" | ||
183 | check_err $? | ||
184 | |||
185 | ip netns exec testns ip route get fibmatch 203.0.113.1 | \ | ||
186 | grep $up_dev | grep -q "dead linkdown" | ||
187 | check_fail $? | ||
188 | ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 | \ | ||
189 | grep $up_dev | grep -q "dead linkdown" | ||
190 | check_fail $? | ||
191 | } | ||
192 | |||
193 | fib_down_multipath_test() | ||
194 | { | ||
195 | ret=0 | ||
196 | |||
197 | netns_create "testns" | ||
198 | |||
199 | ip netns exec testns ip link add dummy0 type dummy | ||
200 | ip netns exec testns ip link set dev dummy0 up | ||
201 | |||
202 | ip netns exec testns ip link add dummy1 type dummy | ||
203 | ip netns exec testns ip link set dev dummy1 up | ||
204 | |||
205 | ip netns exec testns ip address add 198.51.100.1/24 dev dummy0 | ||
206 | ip netns exec testns ip -6 address add 2001:db8:1::1/64 dev dummy0 | ||
207 | |||
208 | ip netns exec testns ip address add 192.0.2.1/24 dev dummy1 | ||
209 | ip netns exec testns ip -6 address add 2001:db8:2::1/64 dev dummy1 | ||
210 | |||
211 | ip netns exec testns ip route add 203.0.113.0/24 \ | ||
212 | nexthop via 198.51.100.2 dev dummy0 \ | ||
213 | nexthop via 192.0.2.2 dev dummy1 | ||
214 | ip netns exec testns ip -6 route add 2001:db8:3::/64 \ | ||
215 | nexthop via 2001:db8:1::2 dev dummy0 \ | ||
216 | nexthop via 2001:db8:2::2 dev dummy1 | ||
217 | |||
218 | ip netns exec testns ip route get fibmatch 203.0.113.1 &> /dev/null | ||
219 | check_err $? | ||
220 | ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 &> /dev/null | ||
221 | check_err $? | ||
222 | |||
223 | ip netns exec testns ip link set dev dummy0 down | ||
224 | check_err $? | ||
225 | |||
226 | fib_down_multipath_test_do "dummy0" "dummy1" | ||
227 | |||
228 | ip netns exec testns ip link set dev dummy0 up | ||
229 | check_err $? | ||
230 | ip netns exec testns ip link set dev dummy1 down | ||
231 | check_err $? | ||
232 | |||
233 | fib_down_multipath_test_do "dummy1" "dummy0" | ||
234 | |||
235 | ip netns exec testns ip link set dev dummy0 down | ||
236 | check_err $? | ||
237 | |||
238 | ip netns exec testns ip route get fibmatch 203.0.113.1 &> /dev/null | ||
239 | check_fail $? | ||
240 | ip netns exec testns ip -6 route get fibmatch 2001:db8:3::1 &> /dev/null | ||
241 | check_fail $? | ||
242 | |||
243 | ip netns exec testns ip link del dev dummy1 | ||
244 | ip netns exec testns ip link del dev dummy0 | ||
245 | |||
246 | ip netns del testns | ||
247 | |||
248 | if [ $ret -ne 0 ]; then | ||
249 | echo "FAIL: multipath route test" | ||
250 | return 1 | ||
251 | fi | ||
252 | echo "PASS: multipath route test" | ||
253 | } | ||
254 | |||
255 | fib_down_test() | ||
256 | { | ||
257 | echo "Running netdev down tests" | ||
258 | |||
259 | fib_down_unicast_test | ||
260 | fib_down_multipath_test | ||
261 | } | ||
262 | |||
123 | fib_test() | 263 | fib_test() |
124 | { | 264 | { |
125 | fib_unreg_test | 265 | fib_unreg_test |
266 | fib_down_test | ||
126 | } | 267 | } |
127 | 268 | ||
128 | if [ "$(id -u)" -ne 0 ];then | 269 | if [ "$(id -u)" -ne 0 ];then |