summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
diff options
context:
space:
mode:
authorMaor Gottlieb2015-12-10 16:12:43 +0100
committerDavid S. Miller2015-12-12 06:15:24 +0100
commit2530236303d9e705db6a28eb9a10c8d79b288b37 (patch)
treeaa1da81cbec8394d7b2dfe52b059c61f43d6d208 /drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
parentnet/mlx5_core: Introduce flow steering API (diff)
downloadkernel-qcow2-linux-2530236303d9e705db6a28eb9a10c8d79b288b37.tar.gz
kernel-qcow2-linux-2530236303d9e705db6a28eb9a10c8d79b288b37.tar.xz
kernel-qcow2-linux-2530236303d9e705db6a28eb9a10c8d79b288b37.zip
net/mlx5_core: Flow steering tree initialization
Flow steering initialization is based on static tree which illustrates the flow steering tree when the driver is loaded. The initialization considers the max supported flow table level of the device, a minimum of 2 kernel flow tables(vlan and mac) are required to have kernel flow table functionality. The tree structures when the driver is loaded: root_namespace(receive nic) | priority-0 (kernel priority) | namespace(kernel namespace) | priority-0 (flow tables priority) In the following patches, When the EN driver will use the flow steering API, it create two flow tables and their flow groups under priority-0(flow tables priority). 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: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/fs_core.h')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/fs_core.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
index 6c27b8ef42b7..4ebb97fd5544 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.h
@@ -46,6 +46,7 @@ enum fs_node_type {
enum fs_flow_table_type {
FS_FT_NIC_RX = 0x0,
+ FS_FT_FDB = 0X4,
};
enum fs_fte_status {
@@ -125,6 +126,9 @@ struct mlx5_flow_root_namespace {
struct mlx5_core_dev *dev;
};
+int mlx5_init_fs(struct mlx5_core_dev *dev);
+void mlx5_cleanup_fs(struct mlx5_core_dev *dev);
+
#define fs_get_obj(v, _node) {v = container_of((_node), typeof(*v), node); }
#define fs_list_for_each_entry(pos, root) \