flags |= NFT_CACHE_FULL;
break;
case CMD_OBJ_CHAINS:
+ filter->list.family = cmd->handle.family;
flags |= NFT_CACHE_TABLE | NFT_CACHE_CHAIN;
break;
case CMD_OBJ_SETS:
case CMD_OBJ_MAPS:
+ filter->list.family = cmd->handle.family;
flags |= NFT_CACHE_TABLE | NFT_CACHE_SET;
if (!nft_output_terse(&nft->output))
flags |= NFT_CACHE_SETELEM;
case CMD_OBJ_FLOWTABLE:
if (cmd->handle.table.name &&
cmd->handle.flowtable.name) {
- filter->list.family = cmd->handle.family;
filter->list.table = cmd->handle.table.name;
filter->list.ft = cmd->handle.flowtable.name;
}
/* fall through */
case CMD_OBJ_FLOWTABLES:
+ filter->list.family = cmd->handle.family;
flags |= NFT_CACHE_TABLE | NFT_CACHE_FLOWTABLE;
break;
case CMD_OBJ_COUNTER:
obj_filter_setup(cmd, &flags, filter, NFT_OBJECT_TUNNEL);
break;
case CMD_OBJ_RULESET:
+ filter->list.family = cmd->handle.family;
+ /* fall through */
default:
flags |= NFT_CACHE_FULL;
break;
--- /dev/null
+#!/bin/bash
+
+set -e
+
+fail() {
+ echo "$*"
+ exit 1
+}
+
+$NFT -f - <<EOF
+table ip ip_t {
+ flowtable ip_t_ft {
+ hook ingress priority 0
+ }
+ set ip_t_s {
+ type inet_service
+ elements = { 22, 80, 443 }
+ }
+ chain ip_t_c {
+ tcp dport 22 accept
+ }
+ chain ip_t_c2 {
+ }
+}
+EOF
+
+$NFT --debug=netlink list ruleset | \
+ grep -q 'payload load' || fail "broken list ruleset"
+$NFT --debug=netlink list ruleset ip6 | \
+ grep -q 'payload load' && fail "broken list ruleset family filter"
+
+$NFT --debug=netlink list chains | \
+ grep -q 'ip ip_t ip_t_c' || fail "broken list chains"
+$NFT --debug=netlink list chains ip6 | \
+ grep -q 'ip ip_t ip_t_c' && fail "broken list chains family filter"
+
+$NFT --debug=netlink list sets | \
+ grep -q 'family 2 ip_t_s ip_t' || fail "broken list sets"
+$NFT --debug=netlink list sets ip6 | \
+ grep -q 'family 2 ip_t_s ip_t' && fail "broken list sets family filter"
+
+$NFT --debug=netlink list flowtables | \
+ grep -q 'flow table ip_t ip_t_ft' || fail "broken list flowtables"
+$NFT --debug=netlink list flowtables ip6 | \
+ grep -q 'flow table ip_t ip_t_ft' && fail "broken list flowtables family filter"
+exit 0