diff options
author | Saeed Mahameed <saeedm@mellanox.com> | 2015-12-01 18:03:20 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-12-03 12:08:46 -0500 |
commit | 81848731ff4070a3e4136efa6a99d507177a53fe (patch) | |
tree | 38c1eb4a42e57b30b10e9f631085d0d85ed6d2c3 /include/linux/mlx5/flow_table.h | |
parent | 495716b191f607b2cb2175f7499966daef79f663 (diff) | |
download | linux-stable-81848731ff4070a3e4136efa6a99d507177a53fe.tar.gz linux-stable-81848731ff4070a3e4136efa6a99d507177a53fe.tar.bz2 linux-stable-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.h | 9 |
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); |