flowtable        1188 include/net/netfilter/nf_tables.h 				    struct nft_flowtable *flowtable,
flowtable        1446 include/net/netfilter/nf_tables.h 	struct nft_flowtable		*flowtable;
flowtable        1450 include/net/netfilter/nf_tables.h 	(((struct nft_trans_flowtable *)trans->data)->flowtable)
flowtable         463 net/netfilter/nf_flow_table_core.c int nf_flow_table_init(struct nf_flowtable *flowtable)
flowtable         467 net/netfilter/nf_flow_table_core.c 	INIT_DEFERRABLE_WORK(&flowtable->gc_work, nf_flow_offload_work_gc);
flowtable         469 net/netfilter/nf_flow_table_core.c 	err = rhashtable_init(&flowtable->rhashtable,
flowtable         475 net/netfilter/nf_flow_table_core.c 			   &flowtable->gc_work, HZ);
flowtable         478 net/netfilter/nf_flow_table_core.c 	list_add(&flowtable->list, &flowtables);
flowtable         502 net/netfilter/nf_flow_table_core.c static void nf_flow_table_iterate_cleanup(struct nf_flowtable *flowtable,
flowtable         505 net/netfilter/nf_flow_table_core.c 	nf_flow_table_iterate(flowtable, nf_flow_table_do_cleanup, dev);
flowtable         506 net/netfilter/nf_flow_table_core.c 	flush_delayed_work(&flowtable->gc_work);
flowtable         511 net/netfilter/nf_flow_table_core.c 	struct nf_flowtable *flowtable;
flowtable         514 net/netfilter/nf_flow_table_core.c 	list_for_each_entry(flowtable, &flowtables, list)
flowtable         515 net/netfilter/nf_flow_table_core.c 		nf_flow_table_iterate_cleanup(flowtable, dev);
flowtable         413 net/netfilter/nf_tables_api.c 				   struct nft_flowtable *flowtable)
flowtable         423 net/netfilter/nf_tables_api.c 		nft_activate_next(ctx->net, flowtable);
flowtable         425 net/netfilter/nf_tables_api.c 	nft_trans_flowtable(trans) = flowtable;
flowtable         432 net/netfilter/nf_tables_api.c 			    struct nft_flowtable *flowtable)
flowtable         436 net/netfilter/nf_tables_api.c 	err = nft_trans_flowtable_add(ctx, NFT_MSG_DELFLOWTABLE, flowtable);
flowtable         440 net/netfilter/nf_tables_api.c 	nft_deactivate_next(ctx->net, flowtable);
flowtable         975 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable, *nft;
flowtable        1005 net/netfilter/nf_tables_api.c 	list_for_each_entry_safe(flowtable, nft, &ctx->table->flowtables, list) {
flowtable        1006 net/netfilter/nf_tables_api.c 		if (!nft_is_active_next(ctx->net, flowtable))
flowtable        1009 net/netfilter/nf_tables_api.c 		err = nft_delflowtable(ctx, flowtable);
flowtable        5633 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable;
flowtable        5635 net/netfilter/nf_tables_api.c 	list_for_each_entry_rcu(flowtable, &table->flowtables, list) {
flowtable        5636 net/netfilter/nf_tables_api.c 		if (!nla_strcmp(nla, flowtable->name) &&
flowtable        5637 net/netfilter/nf_tables_api.c 		    nft_active_genmask(flowtable, genmask))
flowtable        5638 net/netfilter/nf_tables_api.c 			return flowtable;
flowtable        5645 net/netfilter/nf_tables_api.c 				    struct nft_flowtable *flowtable,
flowtable        5652 net/netfilter/nf_tables_api.c 		flowtable->use--;
flowtable        5664 net/netfilter/nf_tables_api.c        struct nft_flowtable *flowtable;
flowtable        5666 net/netfilter/nf_tables_api.c        list_for_each_entry(flowtable, &table->flowtables, list) {
flowtable        5667 net/netfilter/nf_tables_api.c                if (be64_to_cpu(nla_get_be64(nla)) == flowtable->handle &&
flowtable        5668 net/netfilter/nf_tables_api.c                    nft_active_genmask(flowtable, genmask))
flowtable        5669 net/netfilter/nf_tables_api.c                        return flowtable;
flowtable        5719 net/netfilter/nf_tables_api.c 					  struct nft_flowtable *flowtable)
flowtable        5752 net/netfilter/nf_tables_api.c 	flowtable->hooknum	= hooknum;
flowtable        5753 net/netfilter/nf_tables_api.c 	flowtable->priority	= priority;
flowtable        5754 net/netfilter/nf_tables_api.c 	flowtable->ops		= ops;
flowtable        5755 net/netfilter/nf_tables_api.c 	flowtable->ops_len	= n;
flowtable        5758 net/netfilter/nf_tables_api.c 		flowtable->ops[i].pf		= NFPROTO_NETDEV;
flowtable        5759 net/netfilter/nf_tables_api.c 		flowtable->ops[i].hooknum	= hooknum;
flowtable        5760 net/netfilter/nf_tables_api.c 		flowtable->ops[i].priority	= priority;
flowtable        5761 net/netfilter/nf_tables_api.c 		flowtable->ops[i].priv		= &flowtable->data;
flowtable        5762 net/netfilter/nf_tables_api.c 		flowtable->ops[i].hook		= flowtable->data.type->hook;
flowtable        5763 net/netfilter/nf_tables_api.c 		flowtable->ops[i].dev		= dev_array[i];
flowtable        5800 net/netfilter/nf_tables_api.c 					       struct nft_flowtable *flowtable)
flowtable        5804 net/netfilter/nf_tables_api.c 	for (i = 0; i < flowtable->ops_len; i++) {
flowtable        5805 net/netfilter/nf_tables_api.c 		if (!flowtable->ops[i].dev)
flowtable        5808 net/netfilter/nf_tables_api.c 		nf_unregister_net_hook(net, &flowtable->ops[i]);
flowtable        5820 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable, *ft;
flowtable        5839 net/netfilter/nf_tables_api.c 	flowtable = nft_flowtable_lookup(table, nla[NFTA_FLOWTABLE_NAME],
flowtable        5841 net/netfilter/nf_tables_api.c 	if (IS_ERR(flowtable)) {
flowtable        5842 net/netfilter/nf_tables_api.c 		err = PTR_ERR(flowtable);
flowtable        5858 net/netfilter/nf_tables_api.c 	flowtable = kzalloc(sizeof(*flowtable), GFP_KERNEL);
flowtable        5859 net/netfilter/nf_tables_api.c 	if (!flowtable)
flowtable        5862 net/netfilter/nf_tables_api.c 	flowtable->table = table;
flowtable        5863 net/netfilter/nf_tables_api.c 	flowtable->handle = nf_tables_alloc_handle(table);
flowtable        5865 net/netfilter/nf_tables_api.c 	flowtable->name = nla_strdup(nla[NFTA_FLOWTABLE_NAME], GFP_KERNEL);
flowtable        5866 net/netfilter/nf_tables_api.c 	if (!flowtable->name) {
flowtable        5877 net/netfilter/nf_tables_api.c 	flowtable->data.type = type;
flowtable        5878 net/netfilter/nf_tables_api.c 	err = type->init(&flowtable->data);
flowtable        5883 net/netfilter/nf_tables_api.c 					     flowtable);
flowtable        5887 net/netfilter/nf_tables_api.c 	for (i = 0; i < flowtable->ops_len; i++) {
flowtable        5888 net/netfilter/nf_tables_api.c 		if (!flowtable->ops[i].dev)
flowtable        5896 net/netfilter/nf_tables_api.c 				if (flowtable->ops[i].dev == ft->ops[k].dev &&
flowtable        5897 net/netfilter/nf_tables_api.c 				    flowtable->ops[i].pf == ft->ops[k].pf) {
flowtable        5904 net/netfilter/nf_tables_api.c 		err = nf_register_net_hook(net, &flowtable->ops[i]);
flowtable        5909 net/netfilter/nf_tables_api.c 	err = nft_trans_flowtable_add(&ctx, NFT_MSG_NEWFLOWTABLE, flowtable);
flowtable        5913 net/netfilter/nf_tables_api.c 	list_add_tail_rcu(&flowtable->list, &table->flowtables);
flowtable        5918 net/netfilter/nf_tables_api.c 	i = flowtable->ops_len;
flowtable        5921 net/netfilter/nf_tables_api.c 		nf_unregister_net_hook(net, &flowtable->ops[k]);
flowtable        5923 net/netfilter/nf_tables_api.c 	kfree(flowtable->ops);
flowtable        5925 net/netfilter/nf_tables_api.c 	flowtable->data.type->free(&flowtable->data);
flowtable        5929 net/netfilter/nf_tables_api.c 	kfree(flowtable->name);
flowtable        5931 net/netfilter/nf_tables_api.c 	kfree(flowtable);
flowtable        5944 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable;
flowtable        5963 net/netfilter/nf_tables_api.c 		flowtable = nft_flowtable_lookup_byhandle(table, attr, genmask);
flowtable        5966 net/netfilter/nf_tables_api.c 		flowtable = nft_flowtable_lookup(table, attr, genmask);
flowtable        5969 net/netfilter/nf_tables_api.c 	if (IS_ERR(flowtable)) {
flowtable        5971 net/netfilter/nf_tables_api.c 		return PTR_ERR(flowtable);
flowtable        5973 net/netfilter/nf_tables_api.c 	if (flowtable->use > 0) {
flowtable        5980 net/netfilter/nf_tables_api.c 	return nft_delflowtable(&ctx, flowtable);
flowtable        5986 net/netfilter/nf_tables_api.c 					 struct nft_flowtable *flowtable)
flowtable        6003 net/netfilter/nf_tables_api.c 	if (nla_put_string(skb, NFTA_FLOWTABLE_TABLE, flowtable->table->name) ||
flowtable        6004 net/netfilter/nf_tables_api.c 	    nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
flowtable        6005 net/netfilter/nf_tables_api.c 	    nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
flowtable        6006 net/netfilter/nf_tables_api.c 	    nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
flowtable        6013 net/netfilter/nf_tables_api.c 	if (nla_put_be32(skb, NFTA_FLOWTABLE_HOOK_NUM, htonl(flowtable->hooknum)) ||
flowtable        6014 net/netfilter/nf_tables_api.c 	    nla_put_be32(skb, NFTA_FLOWTABLE_HOOK_PRIORITY, htonl(flowtable->priority)))
flowtable        6021 net/netfilter/nf_tables_api.c 	for (i = 0; i < flowtable->ops_len; i++) {
flowtable        6022 net/netfilter/nf_tables_api.c 		const struct net_device *dev = READ_ONCE(flowtable->ops[i].dev);
flowtable        6051 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable;
flowtable        6061 net/netfilter/nf_tables_api.c 		list_for_each_entry_rcu(flowtable, &table->flowtables, list) {
flowtable        6062 net/netfilter/nf_tables_api.c 			if (!nft_is_active(net, flowtable))
flowtable        6077 net/netfilter/nf_tables_api.c 							  table->family, flowtable) < 0)
flowtable        6137 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable;
flowtable        6162 net/netfilter/nf_tables_api.c 	flowtable = nft_flowtable_lookup(table, nla[NFTA_FLOWTABLE_NAME],
flowtable        6164 net/netfilter/nf_tables_api.c 	if (IS_ERR(flowtable))
flowtable        6165 net/netfilter/nf_tables_api.c 		return PTR_ERR(flowtable);
flowtable        6174 net/netfilter/nf_tables_api.c 					    flowtable);
flowtable        6185 net/netfilter/nf_tables_api.c 				       struct nft_flowtable *flowtable,
flowtable        6201 net/netfilter/nf_tables_api.c 					    ctx->family, flowtable);
flowtable        6214 net/netfilter/nf_tables_api.c static void nf_tables_flowtable_destroy(struct nft_flowtable *flowtable)
flowtable        6216 net/netfilter/nf_tables_api.c 	kfree(flowtable->ops);
flowtable        6217 net/netfilter/nf_tables_api.c 	kfree(flowtable->name);
flowtable        6218 net/netfilter/nf_tables_api.c 	flowtable->data.type->free(&flowtable->data);
flowtable        6219 net/netfilter/nf_tables_api.c 	module_put(flowtable->data.type->owner);
flowtable        6220 net/netfilter/nf_tables_api.c 	kfree(flowtable);
flowtable        6254 net/netfilter/nf_tables_api.c 				struct nft_flowtable *flowtable)
flowtable        6258 net/netfilter/nf_tables_api.c 	for (i = 0; i < flowtable->ops_len; i++) {
flowtable        6259 net/netfilter/nf_tables_api.c 		if (flowtable->ops[i].dev != dev)
flowtable        6262 net/netfilter/nf_tables_api.c 		nf_unregister_net_hook(dev_net(dev), &flowtable->ops[i]);
flowtable        6263 net/netfilter/nf_tables_api.c 		flowtable->ops[i].dev = NULL;
flowtable        6272 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable;
flowtable        6282 net/netfilter/nf_tables_api.c 		list_for_each_entry(flowtable, &table->flowtables, list) {
flowtable        6283 net/netfilter/nf_tables_api.c 			nft_flowtable_event(event, dev, flowtable);
flowtable        7690 net/netfilter/nf_tables_api.c 	struct nft_flowtable *flowtable, *nf;
flowtable        7716 net/netfilter/nf_tables_api.c 		list_for_each_entry_safe(flowtable, nf, &table->flowtables, list) {
flowtable        7717 net/netfilter/nf_tables_api.c 			list_del(&flowtable->list);
flowtable        7719 net/netfilter/nf_tables_api.c 			nf_tables_flowtable_destroy(flowtable);
flowtable          19 net/netfilter/nft_flow_offload.c 	struct nft_flowtable	*flowtable;
flowtable          75 net/netfilter/nft_flow_offload.c 	struct nf_flowtable *flowtable = &priv->flowtable->data;
flowtable         127 net/netfilter/nft_flow_offload.c 	ret = flow_offload_add(flowtable, flow);
flowtable         164 net/netfilter/nft_flow_offload.c 	struct nft_flowtable *flowtable;
flowtable         169 net/netfilter/nft_flow_offload.c 	flowtable = nft_flowtable_lookup(ctx->table, tb[NFTA_FLOW_TABLE_NAME],
flowtable         171 net/netfilter/nft_flow_offload.c 	if (IS_ERR(flowtable))
flowtable         172 net/netfilter/nft_flow_offload.c 		return PTR_ERR(flowtable);
flowtable         174 net/netfilter/nft_flow_offload.c 	priv->flowtable = flowtable;
flowtable         175 net/netfilter/nft_flow_offload.c 	flowtable->use++;
flowtable         186 net/netfilter/nft_flow_offload.c 	nf_tables_deactivate_flowtable(ctx, priv->flowtable, phase);
flowtable         194 net/netfilter/nft_flow_offload.c 	priv->flowtable->use++;
flowtable         207 net/netfilter/nft_flow_offload.c 	if (nla_put_string(skb, NFTA_FLOW_TABLE_NAME, priv->flowtable->name))