1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/bin/bash
# NFT_TEST_REQUIRES(NFT_TEST_HAVE_flowtable_counter)
set -e
ft_deldev() {
$NFT "delete flowtable $1 $2 { devices = { $3 }; }"
}
iface_cleanup() {
ip link del dummy0 &>/dev/null || :
ip link del dummy1 &>/dev/null || :
if [ "$NFT_TEST_HAVE_ifname_based_hooks" = y ]; then
ft_deldev filter1 Main_ft1 dummy1
ft_deldev filter2 Main_ft2 dummy1
ft_deldev filter3 Main_ft3 dummy0
ft_deldev filter3 Main_ft3 dummy1
ft_deldev filter4 Main_ft4 dummy0
ft_deldev filter4 Main_ft4 dummy1
fi
}
trap 'iface_cleanup' EXIT
ip link add name dummy0 type dummy
ip link add name dummy1 type dummy
EXPECTED="define if_main = { lo, dummy1 }
table filter1 {
flowtable Main_ft1 {
hook ingress priority filter
counter
devices = \$if_main
}
}"
$NFT -f - <<< $EXPECTED
EXPECTED="define if_main = \"lo\"
table filter2 {
flowtable Main_ft2 {
hook ingress priority filter
counter
devices = { \$if_main, dummy1 }
}
}"
$NFT -f - <<< $EXPECTED
RULESET="define var1 = \"dummy0\"
define var2 = { dummy1 }
define var3 = { lo, \$var1, \$var2 }
table filter3 {
flowtable Main_ft3 {
hook ingress priority filter
counter
devices = { \$var3 }
}
}"
$NFT -f - <<< $RULESET
RULESET="define var1 = \"dummy0\"
define var2 = { dummy1 }
define var3 = { lo, \$var1, \$var2 }
table filter4 {
flowtable Main_ft4 {
hook ingress priority filter
counter
devices = \$var3
}
}"
$NFT -f - <<< $RULESET
|