blob: fdf5f49edb9c6d11513f43d26363a222e25726ce (
plain)
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
|
#!/bin/bash
set -e
$NFT -f /dev/stdin <<EOF
table ip test {
chain output { type filter hook output priority 0;
}
}
EOF
# misses 'flags dynamic'
$NFT 'add set ip test dlist {type ipv4_addr; }'
# picks rhash backend because 'size' was also missing.
$NFT 'add rule ip test output udp dport 1234 update @dlist { ip daddr } counter'
tmpfile=$(mktemp)
trap "rm -rf $tmpfile" EXIT
# kernel has forced an 64k upper size, i.e. this restore file
# has 'size 65536' but no 'flags dynamic'.
$NFT list ruleset > $tmpfile
# this restore works, because set is still the rhash backend.
$NFT -f $tmpfile # success
$NFT flush ruleset
# fails without commit 'attempt to set_eval flag if dynamic updates requested',
# because set in $tmpfile has 'size x' but no 'flags dynamic'.
$NFT -f $tmpfile
|