Lines Matching refs:flow_table
103 int ovs_flow_tbl_count(const struct flow_table *table) in ovs_flow_tbl_count()
245 static int tbl_mask_array_realloc(struct flow_table *tbl, int size) in tbl_mask_array_realloc()
270 static int tbl_mask_array_add_mask(struct flow_table *tbl, in tbl_mask_array_add_mask()
298 static void tbl_mask_array_del_mask(struct flow_table *tbl, in tbl_mask_array_del_mask()
331 static void flow_mask_remove(struct flow_table *tbl, struct sw_flow_mask *mask) in flow_mask_remove()
389 int ovs_flow_tbl_masks_cache_resize(struct flow_table *table, u32 size) in ovs_flow_tbl_masks_cache_resize()
411 int ovs_flow_tbl_init(struct flow_table *table) in ovs_flow_tbl_init()
459 static void table_instance_flow_free(struct flow_table *table, in table_instance_flow_free()
464 hlist_del_rcu(&flow->flow_table.node[ti->node_ver]); in table_instance_flow_free()
476 void table_instance_flow_flush(struct flow_table *table, in table_instance_flow_flush()
488 flow_table.node[ti->node_ver]) { in table_instance_flow_flush()
513 void ovs_flow_tbl_destroy(struct flow_table *table) in ovs_flow_tbl_destroy()
537 hlist_for_each_entry_rcu(flow, head, flow_table.node[ver]) { in ovs_flow_tbl_dump_next()
563 head = find_bucket(ti, flow->flow_table.hash); in table_instance_insert()
564 hlist_add_head_rcu(&flow->flow_table.node[ti->node_ver], head); in table_instance_insert()
597 flow_table.node[old_ver], in flow_table_copy_flows()
617 int ovs_flow_tbl_flush(struct flow_table *flow_table) in ovs_flow_tbl_flush() argument
629 old_ti = ovsl_dereference(flow_table->ti); in ovs_flow_tbl_flush()
630 old_ufid_ti = ovsl_dereference(flow_table->ufid_ti); in ovs_flow_tbl_flush()
632 rcu_assign_pointer(flow_table->ti, new_ti); in ovs_flow_tbl_flush()
633 rcu_assign_pointer(flow_table->ufid_ti, new_ufid_ti); in ovs_flow_tbl_flush()
634 flow_table->last_rehash = jiffies; in ovs_flow_tbl_flush()
636 table_instance_flow_flush(flow_table, old_ti, old_ufid_ti); in ovs_flow_tbl_flush()
713 hlist_for_each_entry_rcu(flow, head, flow_table.node[ti->node_ver], in masked_flow_lookup()
715 if (flow->mask == mask && flow->flow_table.hash == hash && in masked_flow_lookup()
727 static struct sw_flow *flow_lookup(struct flow_table *tbl, in flow_lookup()
783 struct sw_flow *ovs_flow_tbl_lookup_stats(struct flow_table *tbl, in ovs_flow_tbl_lookup_stats()
847 struct sw_flow *ovs_flow_tbl_lookup(struct flow_table *tbl, in ovs_flow_tbl_lookup()
867 struct sw_flow *ovs_flow_tbl_lookup_exact(struct flow_table *tbl, in ovs_flow_tbl_lookup_exact()
917 struct sw_flow *ovs_flow_tbl_lookup_ufid(struct flow_table *tbl, in ovs_flow_tbl_lookup_ufid()
936 int ovs_flow_tbl_num_masks(const struct flow_table *table) in ovs_flow_tbl_num_masks()
942 u32 ovs_flow_tbl_masks_cache_size(const struct flow_table *table) in ovs_flow_tbl_masks_cache_size()
956 void ovs_flow_tbl_remove(struct flow_table *table, struct sw_flow *flow) in ovs_flow_tbl_remove()
987 static struct sw_flow_mask *flow_mask_find(const struct flow_table *tbl, in flow_mask_find()
1006 static int flow_mask_insert(struct flow_table *tbl, struct sw_flow *flow, in flow_mask_insert()
1035 static void flow_key_insert(struct flow_table *table, struct sw_flow *flow) in flow_key_insert()
1040 flow->flow_table.hash = flow_hash(&flow->key, &flow->mask->range); in flow_key_insert()
1059 static void flow_ufid_insert(struct flow_table *table, struct sw_flow *flow) in flow_ufid_insert()
1081 int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow, in ovs_flow_tbl_insert()
1105 void ovs_flow_masks_rebalance(struct flow_table *table) in ovs_flow_masks_rebalance()