aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mlx5/flow_table.h
diff options
context:
space:
mode:
authorSaeed Mahameed <saeedm@mellanox.com>2015-12-01 18:03:20 +0200
committerDavid S. Miller <davem@davemloft.net>2015-12-03 12:08:46 -0500
commit81848731ff4070a3e4136efa6a99d507177a53fe (patch)
tree38c1eb4a42e57b30b10e9f631085d0d85ed6d2c3 /include/linux/mlx5/flow_table.h
parentnet/mlx5: E-Switch, Introduce FDB hardware capabilities (diff)
downloadlinux-dev-81848731ff4070a3e4136efa6a99d507177a53fe.tar.xz
linux-dev-81848731ff4070a3e4136efa6a99d507177a53fe.zip
net/mlx5: E-Switch, Add SR-IOV (FDB) support
Enabling E-Switch SRIOV for nvfs+1 vports. Create E-Switch FDB for L2 UC/MC mac steering between VFs/PF and external vport (Uplink). FDB contains forwarding rules such as: UC MAC0 -> vport0(PF). UC MAC1 -> vport1. UC MAC2 -> vport2. MC MACX -> vport0, vport2, Uplink. MC MACY -> vport1, Uplink. For unmatched traffic FDB has the following default rules: Unmached Traffic (src vport != Uplink) -> Uplink. Unmached Traffic (src vport == Uplink) -> vport0(PF). FDB rules population: Each NIC vport (VF) will notify E-Switch manager of its UC/MC vport context changes via modify vport context command, which will be translated to an event that will be handled by E-Switch manager (PF) which will update FDB table accordingly. Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/mlx5/flow_table.h')
-rw-r--r--include/linux/mlx5/flow_table.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/mlx5/flow_table.h b/include/linux/mlx5/flow_table.h
index 5f922c6d4fc2..0f2a15cf3317 100644
--- a/include/linux/mlx5/flow_table.h
+++ b/include/linux/mlx5/flow_table.h
@@ -41,6 +41,15 @@ struct mlx5_flow_table_group {
u32 match_criteria[MLX5_ST_SZ_DW(fte_match_param)];
};
+struct mlx5_flow_destination {
+ enum mlx5_flow_destination_type type;
+ union {
+ u32 tir_num;
+ void *ft;
+ u32 vport_num;
+ };
+};
+
void *mlx5_create_flow_table(struct mlx5_core_dev *dev, u8 level, u8 table_type,
u16 num_groups,
struct mlx5_flow_table_group *group);