Home
last modified time | relevance | path

Searched refs:flowtable (Results 1 – 10 of 10) sorted by relevance

/linux/Documentation/networking/
H A Dnf_flowtable.rst4 Netfilter's flowtable infrastructure
7 This documentation describes the Netfilter flowtable infrastructure which allows
8 you to define a fastpath through the flowtable datapath. This infrastructure
9 also provides hardware offload support. The flowtable supports for the layer 3
17 flowtable through your ruleset. The flowtable infrastructure provides a rule
18 action that allows you to specify when to add a flow to the flowtable.
20 A packet that finds a matching entry in the flowtable (ie. flowtable hit) is
24 there is no matching entry in the flowtable (ie. flowtable miss), the packet
27 The flowtable uses a resizable hashtable. Lookups are based on the following
32 The 'flow add' action allows you to populate the flowtable, the user selectively
[all …]
/linux/net/netfilter/
H A Dnf_flow_table_offload.c23 struct nf_flowtable *flowtable; member
736 const struct nf_flowtable *flowtable = offload->flowtable; in nf_flow_offload_rule_alloc() local
765 if (flowtable->type->action(net, flow, dir, flow_rule) < 0) in nf_flow_offload_rule_alloc()
805 struct net *net = read_pnet(&offload->flowtable->net); in nf_flow_offload_alloc()
835 static int nf_flow_offload_tuple(struct nf_flowtable *flowtable, in nf_flow_offload_tuple() argument
854 down_read(&flowtable->flow_block_lock); in nf_flow_offload_tuple()
863 up_read(&flowtable->flow_block_lock); in nf_flow_offload_tuple()
875 return nf_flow_offload_tuple(offload->flowtable, offload->flow, in flow_offload_tuple_add()
877 offload->flowtable in flow_offload_tuple_add()
1016 nf_flow_offload_work_alloc(struct nf_flowtable * flowtable,struct flow_offload * flow,unsigned int cmd) nf_flow_offload_work_alloc() argument
1039 nf_flow_offload_add(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_add() argument
1051 nf_flow_offload_del(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_del() argument
1064 nf_flow_offload_stats(struct nf_flowtable * flowtable,struct flow_offload * flow) nf_flow_offload_stats() argument
1081 nf_flow_table_offload_flush_cleanup(struct nf_flowtable * flowtable) nf_flow_table_offload_flush_cleanup() argument
1089 nf_flow_table_offload_flush(struct nf_flowtable * flowtable) nf_flow_table_offload_flush() argument
1098 nf_flow_table_block_setup(struct nf_flowtable * flowtable,struct flow_block_offload * bo,enum flow_block_command cmd) nf_flow_table_block_setup() argument
1128 nf_flow_table_block_offload_init(struct flow_block_offload * bo,struct net * net,enum flow_block_command cmd,struct nf_flowtable * flowtable,struct netlink_ext_ack * extack) nf_flow_table_block_offload_init() argument
1143 struct nf_flowtable *flowtable = block_cb->indr.data; nf_flow_table_indr_cleanup() local
1155 nf_flow_table_indr_offload_cmd(struct flow_block_offload * bo,struct nf_flowtable * flowtable,struct net_device * dev,enum flow_block_command cmd,struct netlink_ext_ack * extack) nf_flow_table_indr_offload_cmd() argument
1168 nf_flow_table_offload_cmd(struct flow_block_offload * bo,struct nf_flowtable * flowtable,struct net_device * dev,enum flow_block_command cmd,struct netlink_ext_ack * extack) nf_flow_table_offload_cmd() argument
1186 nf_flow_table_offload_setup(struct nf_flowtable * flowtable,struct net_device * dev,enum flow_block_command cmd) nf_flow_table_offload_setup() argument
[all...]
H A Dnf_flow_table_core.c421 void (*iter)(struct nf_flowtable *flowtable, in nf_flow_table_iterate()
514 * flowtable and ct entries could have been removed on another CPU. in nf_flow_table_extend_ct_timeout()
691 int nf_flow_table_init(struct nf_flowtable *flowtable) in nf_flow_table_init()
695 INIT_DELAYED_WORK(&flowtable->gc_work, nf_flow_offload_work_gc); in nf_flow_table_init()
696 flow_block_init(&flowtable->flow_block); in nf_flow_table_init()
697 init_rwsem(&flowtable->flow_block_lock); in nf_flow_table_init()
699 err = rhashtable_init(&flowtable->rhashtable, in nf_flow_table_init()
705 &flowtable->gc_work, HZ); in nf_flow_table_init()
708 list_add(&flowtable->list, &flowtables); in nf_flow_table_init()
731 void nf_flow_table_gc_cleanup(struct nf_flowtable *flowtable, in nf_flow_table_gc_cleanup()
418 nf_flow_table_iterate(struct nf_flowtable * flow_table,void (* iter)(struct nf_flowtable * flowtable,struct flow_offload * flow,void * data),void * data) nf_flow_table_iterate() argument
688 nf_flow_table_init(struct nf_flowtable * flowtable) nf_flow_table_init() argument
728 nf_flow_table_gc_cleanup(struct nf_flowtable * flowtable,struct net_device * dev) nf_flow_table_gc_cleanup() argument
738 struct nf_flowtable *flowtable; nf_flow_table_cleanup() local
[all...]
H A Dnf_flow_table_xdp.c133 int nf_flow_offload_xdp_setup(struct nf_flowtable *flowtable, in nf_flow_offload_xdp_setup() argument
139 return nf_flowtable_by_dev_insert(flowtable, dev); in nf_flow_offload_xdp_setup()
141 nf_flowtable_by_dev_remove(flowtable, dev); in nf_flow_offload_xdp_setup()
H A Dnf_tables_api.c900 struct nft_flowtable *flowtable) in nft_trans_flowtable_add() argument
910 nft_activate_next(ctx->net, flowtable); in nft_trans_flowtable_add()
913 nft_trans_flowtable(trans) = flowtable; in nft_trans_flowtable_add()
920 struct nft_flowtable *flowtable) in nft_delflowtable() argument
924 trans = nft_trans_flowtable_add(ctx, NFT_MSG_DELFLOWTABLE, flowtable); in nft_delflowtable()
928 nft_deactivate_next(ctx->net, flowtable); in nft_delflowtable()
1678 struct nft_flowtable *flowtable, *nft; in nft_flush_table() local
1710 list_for_each_entry_safe(flowtable, nft, &ctx->table->flowtables, list) { in nft_flush_table()
1711 if (!nft_is_active_next(ctx->net, flowtable)) in nft_flush_table()
1714 err = nft_delflowtable(ctx, flowtable); in nft_flush_table()
[all …]
H A Dnf_flow_table_path.c93 unsigned char *ha, struct nf_flowtable *flowtable) in nft_dev_path_info() argument
178 if (nf_flowtable_hw_offload(flowtable) && in nft_dev_path_info()
/linux/include/net/netfilter/
H A Dnf_flow_table.h89 static inline bool nf_flowtable_hw_offload(struct nf_flowtable *flowtable) in nf_flowtable_hw_offload() argument
91 return flowtable->flags & NF_FLOWTABLE_HW_OFFLOAD; in nf_flowtable_hw_offload()
313 void nf_flow_table_gc_cleanup(struct nf_flowtable *flowtable,
334 int nf_flow_offload_xdp_setup(struct nf_flowtable *flowtable,
354 MODULE_ALIAS("nf-flowtable-" __stringify(family))
356 void nf_flow_offload_add(struct nf_flowtable *flowtable, in __nf_flow_pppoe_proto()
358 void nf_flow_offload_del(struct nf_flowtable *flowtable, in __nf_flow_pppoe_proto()
360 void nf_flow_offload_stats(struct nf_flowtable *flowtable, in __nf_flow_pppoe_proto()
363 void nf_flow_table_offload_flush(struct nf_flowtable *flowtable); in __nf_flow_pppoe_proto()
364 void nf_flow_table_offload_flush_cleanup(struct nf_flowtable *flowtable); in __nf_flow_pppoe_proto()
[all...]
H A Dnf_tables.h1500 struct nft_flowtable *flowtable,
1830 struct nft_flowtable *flowtable; member
1839 nft_trans_container_flowtable(trans)->flowtable
/linux/tools/testing/selftests/net/netfilter/
H A Dnft_interface_stress.sh59 flowtable ft_${i} {
105 flowtable ft_wild {
H A Dnft_flowtable.sh4 # This tests basic flowtable functionality.
164 flowtable f1 {
256 # flowtable fastpath should bypass normal routing one, i.e. the counters in forward hook
454 # partial. If flowtable really works, then both dscp-is-0 and dscp-is-cs3
564 # are lower than file size and packets were forwarded via flowtable layer.
565 # For earlier tests (large mtus), packets cannot be handled via flowtable
583 # Add IPIP tunnel interfaces and check flowtable acceleration.