summaryrefslogtreecommitdiffstats
path: root/tests/shell/testcases/chains/0021prio_0
diff options
context:
space:
mode:
Diffstat (limited to 'tests/shell/testcases/chains/0021prio_0')
-rwxr-xr-xtests/shell/testcases/chains/0021prio_090
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/shell/testcases/chains/0021prio_0 b/tests/shell/testcases/chains/0021prio_0
new file mode 100755
index 0000000..ceda155
--- /dev/null
+++ b/tests/shell/testcases/chains/0021prio_0
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+set -e
+
+format_offset () {
+ local i=$1
+ if ((i == 0))
+ then
+ echo ""
+ elif ((i > 0))
+ then
+ echo "+$i"
+ else
+ echo "$i"
+ fi
+}
+
+chainname () {
+ local hook=$1
+ local prioname=$2
+ local priooffset=$3
+
+ echo "${hook}${prioname}${priooffset}" | tr "\-+" "mp"
+}
+
+gen_chains () {
+ local family=$1
+ local hook=$2
+ local prioname=$3
+ local device=${4:+device $4}
+
+ for i in -11 -10 0 10 11
+ do
+ local offset=`format_offset $i`
+ local cmd="add chain $family x"
+ cmd+=" `chainname $hook $prioname $offset` {"
+ cmd+=" type filter hook $hook $device"
+ cmd+=" priority $prioname $offset; }"
+ echo "$cmd"
+ done
+}
+
+tmpfile=$(mktemp)
+trap "rm $tmpfile" EXIT
+
+(
+
+for family in ip ip6 inet
+do
+ echo "add table $family x"
+ for hook in prerouting input forward output postrouting
+ do
+ for prioname in raw mangle filter security
+ do
+ gen_chains $family $hook $prioname
+ done
+ done
+ gen_chains $family prerouting dstnat
+ gen_chains $family postrouting srcnat
+done
+
+family=arp
+echo "add table $family x"
+for hook in input output
+do
+ gen_chains $family $hook filter
+done
+
+family=netdev
+echo "add table $family x"
+gen_chains $family ingress filter lo
+[ "$NFT_TEST_HAVE_netdev_egress" != n ] && gen_chains $family egress filter lo
+
+family=bridge
+echo "add table $family x"
+for hook in prerouting input forward output postrouting
+do
+ gen_chains $family $hook filter
+done
+gen_chains $family prerouting dstnat
+gen_chains $family output out
+gen_chains $family postrouting srcnat
+
+) >$tmpfile
+$NFT -f $tmpfile
+
+if [ "$NFT_TEST_HAVE_netdev_egress" = n ]; then
+ echo "Ran a modified version of the test due to NFT_TEST_HAVE_netdev_egress=n"
+ exit 77
+fi