diff options
author | Roi Dayan | 2018-11-11 21:24:03 +0100 |
---|---|---|
committer | Saeed Mahameed | 2018-12-14 22:28:52 +0100 |
commit | 04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d (patch) | |
tree | e2b570b78343020d2d6630e4912d6bbea9b3117c /drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | |
parent | net/mlx5e: E-Switch, Add peer miss rules (diff) | |
download | kernel-qcow2-linux-04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d.tar.gz kernel-qcow2-linux-04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d.tar.xz kernel-qcow2-linux-04de7dda7394fa9c2b0fc9cec65661d9b4f0d04d.zip |
net/mlx5e: Infrastructure for duplicated offloading of TC flows
Under uplink LAG or multipath schemes, traffic that matches one flow
might arrive on both uplink ports and transmitted through both
as part of supporting aggregation and high-availability.
To cope with the fact that the SW model might use logical SW port
(e.g uplink team or bond) but we have two HW ports with e-switch on
each, there are cases where in order to offload a SW TC rule we
need to duplicate it to two HW flows.
Since each HW rule has its own counter we also aggregate the counter
of both rules when a flow stats query is executed from user-space.
Introduce the changes for the different elements (add/delete/stats),
currently nothing is duplicated.
Signed-off-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Aviv Heller <avivh@mellanox.com>
Signed-off-by: Shahar Klein <shahark@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/eswitch.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h index 9dba6ad5744d..4d048f7e703b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h @@ -167,6 +167,8 @@ struct mlx5_esw_offload { struct mlx5_flow_table *ft_offloads; struct mlx5_flow_group *vport_rx_group; struct mlx5_eswitch_rep *vport_reps; + struct list_head peer_flows; + struct mutex peer_mutex; DECLARE_HASHTABLE(encap_tbl, 8); DECLARE_HASHTABLE(mod_hdr_tbl, 8); u8 inline_mode; |