diff options
author | Or Gerlitz | 2018-04-10 17:34:36 +0200 |
---|---|---|
committer | Saeed Mahameed | 2018-05-18 02:48:54 +0200 |
commit | 655dc3d2b91bf241f5baca5eb2bc2b1e22a561ff (patch) | |
tree | 79e9aaf7baa7d3ff9e93ced8cc77a7be3eb81b3c /drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | |
parent | net/mlx5e: Prepare for shared table to keep TC eswitch flows (diff) | |
download | kernel-qcow2-linux-655dc3d2b91bf241f5baca5eb2bc2b1e22a561ff.tar.gz kernel-qcow2-linux-655dc3d2b91bf241f5baca5eb2bc2b1e22a561ff.tar.xz kernel-qcow2-linux-655dc3d2b91bf241f5baca5eb2bc2b1e22a561ff.zip |
net/mlx5e: Use shared table for offloaded TC eswitch flows
Currently, each representor netdev use their own hash table to keep
the mapping from TC flow (f->cookie) to the driver offloaded instance.
The table is the one which originally was added for offloading TC NIC
(not eswitch) rules.
This scheme breaks when the core TC code calls us to add the same flow
twice, (e.g under egdev use case) since we don't spot that and offload
a 2nd flow into the HW with the wrong source vport.
As a pre-step to solve that, we move to use a single table which keeps
all offloaded TC eswitch flows. The table is located at the eswitch
uplink representor object.
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en_rep.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.h b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.h index b9b481f2833a..844d32d5c29f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.h @@ -59,6 +59,7 @@ struct mlx5e_rep_priv { struct net_device *netdev; struct mlx5_flow_handle *vport_rx_rule; struct list_head vport_sqs_list; + struct rhashtable tc_ht; /* valid for uplink rep */ }; static inline |