mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 15:47:36 +00:00
net/mlx5: VLAN push on RX, pop on TX
Some older NIC hardware isn't capable of doing VLAN push on RX and pop on TX. A workaround has been added in software to support it, but it has a performance penalty since it requires a hairpin + loopback. There's no such limitation with the newer NICs, so no need to pay the price of the w/a. With this change the software w/a is disabled for certain HW versions and steering modes that support it. Signed-off-by: Dima Chumak <dchumak@nvidia.com> Reviewed-by: Oz Shlomo <ozsh@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
8348b71ccd
commit
60dc0ef674
1 changed files with 3 additions and 1 deletions
|
@ -224,7 +224,9 @@ mlx5_eswitch_termtbl_required(struct mlx5_eswitch *esw,
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* push vlan on RX */
|
/* push vlan on RX */
|
||||||
if (flow_act->action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH)
|
if (flow_act->action & MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH &&
|
||||||
|
!(mlx5_fs_get_capabilities(esw->dev, MLX5_FLOW_NAMESPACE_FDB) &
|
||||||
|
MLX5_FLOW_STEERING_CAP_VLAN_PUSH_ON_RX))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
/* hairpin */
|
/* hairpin */
|
||||||
|
|
Loading…
Reference in a new issue