diff options
author | Florian Westphal <fw@strlen.de> | 2023-12-01 15:49:18 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2024-01-08 14:17:22 +0100 |
commit | 4ee6f7d8c676ca6cd96aabd8dd9b52d90f4127d5 (patch) | |
tree | 9576f740f8a456a2dfbea2c315adbd377f2f68dc /tests/shell/testcases/maps/pipapo_double_flush | |
parent | a852022d719e5a414df41a10c331f4492e9d3073 (diff) |
tests: add a test case for double-flush bug in pipapo
Test for
'netfilter: nft_set_pipapo: skip inactive elements during set walk'.
Reported-by: Xingyuan Mo <hdthky0@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests/shell/testcases/maps/pipapo_double_flush')
-rwxr-xr-x | tests/shell/testcases/maps/pipapo_double_flush | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/shell/testcases/maps/pipapo_double_flush b/tests/shell/testcases/maps/pipapo_double_flush new file mode 100755 index 00000000..35ad0966 --- /dev/null +++ b/tests/shell/testcases/maps/pipapo_double_flush @@ -0,0 +1,25 @@ +#!/bin/bash + +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_pipapo) + +set -e + +$NFT add table inet t +$NFT add chain inet t c +$NFT 'add map inet t m { type ipv4_addr . ipv4_addr : verdict; flags interval;}' + +for i in $(seq 1 10); do + $NFT "add element inet t m { 10.0.0.1 . 1.2.$i.1 - 1.2.$i.10 : jump c }" +done + +$NFT -f /dev/stdin <<EOF +add element inet t m { 10.1.1.1 . 1.1.1.4 : accept } +add element inet t m { 10.1.1.6 . 1.1.1.4 : drop } +add element inet t m { 10.1.1.7 . 1.1.1.4 : jump c } +flush map inet t m +add element inet t m { 10.1.1.1 . 1.1.1.4 : accept } +add element inet t m { 10.1.1.6 . 1.1.1.4 : drop } +add element inet t m { 10.1.1.7 . 1.1.1.4 : jump c } +flush map inet t m +flush map inet t m +EOF |