Skip to content

Commit eaa29d2

Browse files
committed
selftests: netfilter: conntrack_vrf.sh: add fib test case
JIRA: https://issues.redhat.com/browse/RHEL-21061 Upstream Status: commit c6a0862 commit c6a0862 Author: Florian Westphal <[email protected]> Date: Wed Oct 9 09:19:03 2024 +0200 selftests: netfilter: conntrack_vrf.sh: add fib test case meta iifname veth0 ip daddr ... fib daddr oif ... is expected to return "dummy0" interface which is part of same vrf as veth0. Signed-off-by: Florian Westphal <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: Florian Westphal <[email protected]>
1 parent 14bc8ad commit eaa29d2

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tools/testing/selftests/net/netfilter/conntrack_vrf.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ source lib.sh
3232

3333
IP0=172.30.30.1
3434
IP1=172.30.30.2
35+
DUMMYNET=10.9.9
3536
PFXL=30
3637
ret=0
3738

@@ -54,6 +55,7 @@ setup_ns ns0 ns1
5455
ip netns exec "$ns0" sysctl -q -w net.ipv4.conf.default.rp_filter=0
5556
ip netns exec "$ns0" sysctl -q -w net.ipv4.conf.all.rp_filter=0
5657
ip netns exec "$ns0" sysctl -q -w net.ipv4.conf.all.rp_filter=0
58+
ip netns exec "$ns0" sysctl -q -w net.ipv4.conf.all.forwarding=1
5759

5860
if ! ip link add veth0 netns "$ns0" type veth peer name veth0 netns "$ns1" > /dev/null 2>&1; then
5961
echo "SKIP: Could not add veth device"
@@ -65,13 +67,18 @@ if ! ip -net "$ns0" li add tvrf type vrf table 9876; then
6567
exit $ksft_skip
6668
fi
6769

70+
ip -net "$ns0" link add dummy0 type dummy
71+
6872
ip -net "$ns0" li set veth0 master tvrf
73+
ip -net "$ns0" li set dummy0 master tvrf
6974
ip -net "$ns0" li set tvrf up
7075
ip -net "$ns0" li set veth0 up
76+
ip -net "$ns0" li set dummy0 up
7177
ip -net "$ns1" li set veth0 up
7278

7379
ip -net "$ns0" addr add $IP0/$PFXL dev veth0
7480
ip -net "$ns1" addr add $IP1/$PFXL dev veth0
81+
ip -net "$ns0" addr add $DUMMYNET.1/$PFXL dev dummy0
7582

7683
listener_ready()
7784
{
@@ -212,9 +219,35 @@ EOF
212219
fi
213220
}
214221

222+
test_fib()
223+
{
224+
ip netns exec "$ns0" nft -f - <<EOF
225+
flush ruleset
226+
table ip t {
227+
counter fibcount { }
228+
229+
chain prerouting {
230+
type filter hook prerouting priority 0;
231+
meta iifname veth0 ip daddr $DUMMYNET.2 fib daddr oif dummy0 counter name fibcount notrack
232+
}
233+
}
234+
EOF
235+
ip -net "$ns1" route add 10.9.9.0/24 via "$IP0" dev veth0
236+
ip netns exec "$ns1" ping -q -w 1 -c 1 "$DUMMYNET".2 > /dev/null
237+
238+
if ip netns exec "$ns0" nft list counter t fibcount | grep -q "packets 1"; then
239+
echo "PASS: fib lookup returned exepected output interface"
240+
else
241+
echo "FAIL: fib lookup did not return exepected output interface"
242+
ret=1
243+
return
244+
fi
245+
}
246+
215247
test_ct_zone_in
216248
test_masquerade_vrf "default"
217249
test_masquerade_vrf "pfifo"
218250
test_masquerade_veth
251+
test_fib
219252

220253
exit $ret

0 commit comments

Comments
 (0)