Commit 60dc0ef6 authored by Dima Chumak's avatar Dima Chumak Committed by Saeed Mahameed
Browse files

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: default avatarDima Chumak <dchumak@nvidia.com>
Reviewed-by: default avatarOz Shlomo <ozsh@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 8348b71c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -224,7 +224,9 @@ mlx5_eswitch_termtbl_required(struct mlx5_eswitch *esw,
		return false;

	/* 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;

	/* hairpin */