summaryrefslogtreecommitdiffstats
path: root/tests/shell/testcases/sets/sets_with_ifnames
diff options
context:
space:
mode:
Diffstat (limited to 'tests/shell/testcases/sets/sets_with_ifnames')
-rwxr-xr-xtests/shell/testcases/sets/sets_with_ifnames64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/shell/testcases/sets/sets_with_ifnames b/tests/shell/testcases/sets/sets_with_ifnames
index 9531c856..c65499b7 100755
--- a/tests/shell/testcases/sets/sets_with_ifnames
+++ b/tests/shell/testcases/sets/sets_with_ifnames
@@ -1,5 +1,7 @@
#!/bin/bash
+# NFT_TEST_REQUIRES(NFT_TEST_HAVE_pipapo)
+
dumpfile=$(dirname $0)/dumps/$(basename $0).nft
[ -z "$NFT" ] && exit 111
@@ -103,10 +105,67 @@ check_matching_icmp_ppp()
fi
}
+check_add_del_ifnames()
+{
+ local what="$1"
+ local setname="$2"
+ local prefix="$3"
+ local data="$4"
+ local i=0
+
+ for i in $(seq 1 5);do
+ local cmd="element inet testifsets $setname { "
+ local to_batch=16
+
+ for j in $(seq 1 $to_batch);do
+ local name=$(printf '"%x-%d"' $i $j)
+
+ [ -n "$prefix" ] && cmd="$cmd $prefix . "
+
+ cmd="$cmd $name"
+
+ [ -n "$data" ] && cmd="$cmd : $data"
+
+ if [ $j -lt $to_batch ] ; then
+ cmd="$cmd, "
+ fi
+ done
+
+ cmd="$cmd }"
+
+ if ! $NFT "$what" "$cmd"; then
+ echo "$what $cmd failed."
+ $NFT list set inet testifsets $setname
+ exit 1
+ fi
+
+ if ! ip netns exec "$ns1" $NFT "$what" "$cmd"; then
+ echo "$ns1 $what $cmd failed."
+ ip netns exec "$ns1" $NFT list set inet testifsets $setname
+ exit 1
+ fi
+ done
+}
+
+check_add_ifnames()
+{
+ check_add_del_ifnames "add" "$1" "$2" "$3"
+}
+
+check_del_ifnames()
+{
+ check_add_del_ifnames "delete" "$1" "$2" "$3"
+}
+
ip netns add "$ns1" || exit 111
ip netns add "$ns2" || exit 111
ip netns exec "$ns1" $NFT -f "$dumpfile" || exit 3
+check_add_ifnames "simple" "" ""
+check_add_ifnames "simple_wild" "" ""
+check_add_ifnames "concat" "10.1.2.2" ""
+check_add_ifnames "map_wild" "" "drop"
+
for n in abcdef0 abcdef1 othername;do
check_elem simple $n
done
@@ -148,3 +207,8 @@ ip -net "$ns2" addr add 10.1.2.2/24 dev veth0
ip -net "$ns2" addr add 10.2.2.2/24 dev veth1
check_matching_icmp_ppp
+
+check_del_ifnames "simple" "" ""
+check_del_ifnames "simple_wild" "" ""
+check_del_ifnames "concat" "10.1.2.2" ""
+check_del_ifnames "map_wild" "" "drop"