nft_trans_chain
container_of(t, struct nft_trans_chain, nft_trans_binding.nft_trans)
ctx->chain = nft_trans_chain(trans);
static void nft_chain_commit_drop_policy(struct nft_trans_chain *trans)
static void nft_chain_commit_update(struct nft_trans_chain *trans)
nf_tables_chain_destroy(nft_trans_chain(trans));
nft_chain_binding(nft_trans_chain(trans)) &&
nft_clear(net, nft_trans_chain(trans));
nft_chain_del(nft_trans_chain(trans));
nft_trans_chain(trans));
nf_tables_chain_destroy(nft_trans_chain(trans));
nft_chain_del(nft_trans_chain(trans));
nft_trans_chain(trans));
nft_clear(trans->net, nft_trans_chain(trans));
BUILD_BUG_ON(offsetof(struct nft_trans_chain, nft_trans_binding.nft_trans) != 0);
nft_is_base_chain(nft_trans_chain(trans)))))
static void nft_chain_stats_replace(struct nft_trans_chain *trans)
if (nft_trans_chain(trans) == chain)
nft_trans_chain(trans)->table == table &&
nft_active_genmask(nft_trans_chain(trans), genmask))
return nft_trans_chain(trans);
nft_chain_binding(nft_trans_chain(trans)))
struct nft_trans_chain *trans_chain;
trans = nft_trans_alloc(ctx, msg_type, sizeof(struct nft_trans_chain));
if (!(nft_trans_chain(trans)->flags & NFT_CHAIN_HW_OFFLOAD) ||
err = nft_flow_offload_chain(nft_trans_chain(trans), NULL,
if (!(nft_trans_chain(trans)->flags & NFT_CHAIN_HW_OFFLOAD))
err = nft_flow_offload_chain(nft_trans_chain(trans), NULL,
if (!(nft_trans_chain(trans)->flags & NFT_CHAIN_HW_OFFLOAD) ||
err = nft_flow_offload_chain(nft_trans_chain(trans), &policy,
if (!(nft_trans_chain(trans)->flags & NFT_CHAIN_HW_OFFLOAD))
err = nft_flow_offload_chain(nft_trans_chain(trans), &policy,