Blame tests/shell/testcases/chains/0021prio_0

Packit c5a612
#!/bin/bash
Packit c5a612
Packit c5a612
set -e
Packit c5a612
Packit c5a612
format_offset () {
Packit c5a612
	local i=$1
Packit c5a612
	if ((i == 0))
Packit c5a612
	then
Packit c5a612
		echo ""
Packit c5a612
	elif ((i > 0))
Packit c5a612
	then
Packit c5a612
		echo "+$i"
Packit c5a612
	else
Packit c5a612
		echo "$i"
Packit c5a612
	fi
Packit c5a612
}
Packit c5a612
Packit c5a612
chainname () {
Packit c5a612
	local hook=$1
Packit c5a612
	local prioname=$2
Packit c5a612
	local priooffset=$3
Packit c5a612
Packit c5a612
	echo "${hook}${prioname}${priooffset}" | tr "\-+" "mp"
Packit c5a612
}
Packit c5a612
Packit c5a612
gen_chains () {
Packit c5a612
	local family=$1
Packit c5a612
	local hook=$2
Packit c5a612
	local prioname=$3
Packit c5a612
	local device=${4:+device $4}
Packit c5a612
Packit c5a612
	for i in -11 -10 0 10 11
Packit c5a612
	do
Packit c5a612
		local offset=`format_offset $i`
Packit c5a612
		local cmd="add chain $family x"
Packit c5a612
		cmd+=" `chainname $hook $prioname $offset` {"
Packit c5a612
		cmd+=" type filter hook $hook $device"
Packit c5a612
		cmd+=" priority $prioname $offset; }"
Packit c5a612
		echo "$cmd"
Packit c5a612
	done
Packit c5a612
}
Packit c5a612
Packit c5a612
tmpfile=$(mktemp)
Packit c5a612
trap "rm $tmpfile" EXIT
Packit c5a612
Packit c5a612
(
Packit c5a612
Packit c5a612
for family in ip ip6 inet
Packit c5a612
do
Packit c5a612
	echo "add table $family x"
Packit c5a612
	for hook in prerouting input forward output postrouting
Packit c5a612
	do
Packit c5a612
		for prioname in raw mangle filter security
Packit c5a612
		do
Packit c5a612
			gen_chains $family $hook $prioname
Packit c5a612
		done
Packit c5a612
	done
Packit c5a612
	gen_chains $family prerouting dstnat
Packit c5a612
	gen_chains $family postrouting srcnat
Packit c5a612
done
Packit c5a612
Packit c5a612
family=arp
Packit c5a612
echo "add table $family x"
Packit c5a612
for hook in input output
Packit c5a612
do
Packit c5a612
	gen_chains $family $hook filter
Packit c5a612
done
Packit c5a612
Packit c5a612
family=netdev
Packit c5a612
echo "add table $family x"
Packit c5a612
gen_chains $family ingress filter lo
Packit c5a612
Packit c5a612
family=bridge
Packit c5a612
echo "add table $family x"
Packit c5a612
for hook in prerouting input forward output postrouting
Packit c5a612
do
Packit c5a612
	gen_chains $family $hook filter
Packit c5a612
done
Packit c5a612
gen_chains $family prerouting dstnat
Packit c5a612
gen_chains $family output out
Packit c5a612
gen_chains $family postrouting srcnat
Packit c5a612
Packit c5a612
) >$tmpfile
Packit c5a612
$NFT -f $tmpfile