hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/tools/testing/selftests/netfilter/conntrack_icmp_related.sh
....@@ -35,6 +35,8 @@
3535 for i in 1 2;do ip netns del nsrouter$i;done
3636 }
3737
38
+trap cleanup EXIT
39
+
3840 ipv4() {
3941 echo -n 192.168.$1.2
4042 }
....@@ -146,11 +148,17 @@
146148 table inet filter {
147149 counter unknown { }
148150 counter related { }
151
+ counter redir4 { }
152
+ counter redir6 { }
149153 chain input {
150154 type filter hook input priority 0; policy accept;
151
- meta l4proto { icmp, icmpv6 } ct state established,untracked accept
152155
156
+ icmp type "redirect" ct state "related" counter name "redir4" accept
157
+ icmpv6 type "nd-redirect" ct state "related" counter name "redir6" accept
158
+
159
+ meta l4proto { icmp, icmpv6 } ct state established,untracked accept
153160 meta l4proto { icmp, icmpv6 } ct state "related" counter name "related" accept
161
+
154162 counter name "unknown" drop
155163 }
156164 }
....@@ -279,5 +287,29 @@
279287 echo "ERROR: icmp error RELATED state test has failed"
280288 fi
281289
282
-cleanup
290
+# add 'bad' route, expect icmp REDIRECT to be generated
291
+ip netns exec nsclient1 ip route add 192.168.1.42 via 192.168.1.1
292
+ip netns exec nsclient1 ip route add dead:1::42 via dead:1::1
293
+
294
+ip netns exec "nsclient1" ping -q -c 2 192.168.1.42 > /dev/null
295
+
296
+expect="packets 1 bytes 112"
297
+check_counter nsclient1 "redir4" "$expect"
298
+if [ $? -ne 0 ];then
299
+ ret=1
300
+fi
301
+
302
+ip netns exec "nsclient1" ping -c 1 dead:1::42 > /dev/null
303
+expect="packets 1 bytes 192"
304
+check_counter nsclient1 "redir6" "$expect"
305
+if [ $? -ne 0 ];then
306
+ ret=1
307
+fi
308
+
309
+if [ $ret -eq 0 ];then
310
+ echo "PASS: icmp redirects had RELATED state"
311
+else
312
+ echo "ERROR: icmp redirect RELATED state test has failed"
313
+fi
314
+
283315 exit $ret