mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-25 08:02:56 +00:00
openvswitch: collect mega flow mask stats
Collect mega flow mask stats. ovs-dpctl show command can be used to display them for debugging and performance tuning. Signed-off-by: Andy Zhou <azhou@nicira.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
This commit is contained in:
parent
618ed0c805
commit
1bd7116f1c
5 changed files with 67 additions and 12 deletions
|
@ -430,13 +430,16 @@ static struct sw_flow *masked_flow_lookup(struct table_instance *ti,
|
|||
}
|
||||
|
||||
struct sw_flow *ovs_flow_tbl_lookup(struct flow_table *tbl,
|
||||
const struct sw_flow_key *key)
|
||||
const struct sw_flow_key *key,
|
||||
u32 *n_mask_hit)
|
||||
{
|
||||
struct table_instance *ti = rcu_dereference(tbl->ti);
|
||||
struct sw_flow_mask *mask;
|
||||
struct sw_flow *flow;
|
||||
|
||||
*n_mask_hit = 0;
|
||||
list_for_each_entry_rcu(mask, &tbl->mask_list, list) {
|
||||
(*n_mask_hit)++;
|
||||
flow = masked_flow_lookup(ti, key, mask);
|
||||
if (flow) /* Found */
|
||||
return flow;
|
||||
|
@ -444,6 +447,17 @@ struct sw_flow *ovs_flow_tbl_lookup(struct flow_table *tbl,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
int ovs_flow_tbl_num_masks(const struct flow_table *table)
|
||||
{
|
||||
struct sw_flow_mask *mask;
|
||||
int num = 0;
|
||||
|
||||
list_for_each_entry(mask, &table->mask_list, list)
|
||||
num++;
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
static struct table_instance *table_instance_expand(struct table_instance *ti)
|
||||
{
|
||||
return table_instance_rehash(ti, ti->n_buckets * 2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue