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
|