net/mlx5_core: Export flow steering API
Add exports to flow steering API for mlx5_ib usage. The following functions are exported: 1. mlx5_create_auto_grouped_flow_table - used to create flow table with auto flow grouping management (create and destroy flow groups). In auto-grouped flow tables, we create groups automatically if needed (if we don't find an existing flow group with same match criteria when we add new rule). 2. mlx5_destroy_flow_table - used to destroy a flow table. 3. mlx5_add_flow_rule - used to add flow rule into a flow table. 4. mlx5_del_flow_rule - used to delete flow rule from its flow table. 5. mlx5_get_flow_namespace - used to get a handle to the required namespace sub-tree. Signed-off-by: Maor Gottlieb <maorg@mellanox.com> Signed-off-by: Moni Shoua <monis@mellanox.com> Signed-off-by: Matan Barak <matanb@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b4d1f032d7
commit
b217ea25af
|
@ -702,6 +702,7 @@ struct mlx5_flow_table *mlx5_create_auto_grouped_flow_table(struct mlx5_flow_nam
|
||||||
|
|
||||||
return ft;
|
return ft;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_create_auto_grouped_flow_table);
|
||||||
|
|
||||||
/* Flow table should be locked */
|
/* Flow table should be locked */
|
||||||
static struct mlx5_flow_group *create_flow_group_common(struct mlx5_flow_table *ft,
|
static struct mlx5_flow_group *create_flow_group_common(struct mlx5_flow_table *ft,
|
||||||
|
@ -1013,11 +1014,13 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft,
|
||||||
unlock_ref_node(&ft->node);
|
unlock_ref_node(&ft->node);
|
||||||
return rule;
|
return rule;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_add_flow_rule);
|
||||||
|
|
||||||
void mlx5_del_flow_rule(struct mlx5_flow_rule *rule)
|
void mlx5_del_flow_rule(struct mlx5_flow_rule *rule)
|
||||||
{
|
{
|
||||||
tree_remove_node(&rule->node);
|
tree_remove_node(&rule->node);
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_del_flow_rule);
|
||||||
|
|
||||||
/* Assuming prio->node.children(flow tables) is sorted by level */
|
/* Assuming prio->node.children(flow tables) is sorted by level */
|
||||||
static struct mlx5_flow_table *find_next_ft(struct mlx5_flow_table *ft)
|
static struct mlx5_flow_table *find_next_ft(struct mlx5_flow_table *ft)
|
||||||
|
@ -1099,6 +1102,7 @@ int mlx5_destroy_flow_table(struct mlx5_flow_table *ft)
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_destroy_flow_table);
|
||||||
|
|
||||||
void mlx5_destroy_flow_group(struct mlx5_flow_group *fg)
|
void mlx5_destroy_flow_group(struct mlx5_flow_group *fg)
|
||||||
{
|
{
|
||||||
|
@ -1143,6 +1147,7 @@ struct mlx5_flow_namespace *mlx5_get_flow_namespace(struct mlx5_core_dev *dev,
|
||||||
|
|
||||||
return ns;
|
return ns;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(mlx5_get_flow_namespace);
|
||||||
|
|
||||||
static struct fs_prio *fs_create_prio(struct mlx5_flow_namespace *ns,
|
static struct fs_prio *fs_create_prio(struct mlx5_flow_namespace *ns,
|
||||||
unsigned prio, int max_ft)
|
unsigned prio, int max_ft)
|
||||||
|
|
Loading…
Reference in New Issue