#!/bin/bash # support for ifname in named maps tmpfile=$(mktemp) if [ ! -w $tmpfile ] ; then echo "Failed to create tmp file" >&2 exit 0 fi trap "rm -rf $tmpfile" EXIT # cleanup if aborted EXPECTED="table inet t { map m1 { type ifname : ipv4_addr elements = { \"eth0\" : 1.1.1.1 } } chain c { ip daddr set iifname map @m1 ip daddr set oifname map @m1 } }" set -e echo "$EXPECTED" > $tmpfile $NFT -f $tmpfile GET="$($NFT list ruleset)" if [ "$EXPECTED" != "$GET" ] ; then DIFF="$(which diff)" [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET") exit 1 fi