Lines Matching defs:flow_table
103 int ovs_flow_tbl_count(const struct flow_table *table)
244 static int tbl_mask_array_realloc(struct flow_table *tbl, int size)
269 static int tbl_mask_array_add_mask(struct flow_table *tbl,
297 static void tbl_mask_array_del_mask(struct flow_table *tbl,
330 static void flow_mask_remove(struct flow_table *tbl, struct sw_flow_mask *mask)
388 int ovs_flow_tbl_masks_cache_resize(struct flow_table *table, u32 size)
410 int ovs_flow_tbl_init(struct flow_table *table)
458 static void table_instance_flow_free(struct flow_table *table,
463 hlist_del_rcu(&flow->flow_table.node[ti->node_ver]);
475 void table_instance_flow_flush(struct flow_table *table,
487 flow_table.node[ti->node_ver]) {
512 void ovs_flow_tbl_destroy(struct flow_table *table)
536 hlist_for_each_entry_rcu(flow, head, flow_table.node[ver]) {
562 head = find_bucket(ti, flow->flow_table.hash);
563 hlist_add_head_rcu(&flow->flow_table.node[ti->node_ver], head);
596 flow_table.node[old_ver],
616 int ovs_flow_tbl_flush(struct flow_table *flow_table)
628 old_ti = ovsl_dereference(flow_table->ti);
629 old_ufid_ti = ovsl_dereference(flow_table->ufid_ti);
631 rcu_assign_pointer(flow_table->ti, new_ti);
632 rcu_assign_pointer(flow_table->ufid_ti, new_ufid_ti);
633 flow_table->last_rehash = jiffies;
635 table_instance_flow_flush(flow_table, old_ti, old_ufid_ti);
712 hlist_for_each_entry_rcu(flow, head, flow_table.node[ti->node_ver],
714 if (flow->mask == mask && flow->flow_table.hash == hash &&
726 static struct sw_flow *flow_lookup(struct flow_table *tbl,
782 struct sw_flow *ovs_flow_tbl_lookup_stats(struct flow_table *tbl,
846 struct sw_flow *ovs_flow_tbl_lookup(struct flow_table *tbl,
866 struct sw_flow *ovs_flow_tbl_lookup_exact(struct flow_table *tbl,
916 struct sw_flow *ovs_flow_tbl_lookup_ufid(struct flow_table *tbl,
935 int ovs_flow_tbl_num_masks(const struct flow_table *table)
941 u32 ovs_flow_tbl_masks_cache_size(const struct flow_table *table)
955 void ovs_flow_tbl_remove(struct flow_table *table, struct sw_flow *flow)
986 static struct sw_flow_mask *flow_mask_find(const struct flow_table *tbl,
1005 static int flow_mask_insert(struct flow_table *tbl, struct sw_flow *flow,
1034 static void flow_key_insert(struct flow_table *table, struct sw_flow *flow)
1039 flow->flow_table.hash = flow_hash(&flow->key, &flow->mask->range);
1058 static void flow_ufid_insert(struct flow_table *table, struct sw_flow *flow)
1080 int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
1104 void ovs_flow_masks_rebalance(struct flow_table *table)