net/mlx5: DR, Can't go to uplink vport on RX rule
[ Upstream commit 5b2a2523eeea5f03d39a9d1ff1bad2e9f8eb98d2 ]
Go-To-Vport action on RX is not allowed when the vport is uplink.
In such case, the packet should be dropped.
Fixes: 9db810ed2d
("net/mlx5: DR, Expose steering action functionality")
Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Erez Shitrit <erezsh@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
e54aedd4d0
commit
75d9ed4930
@ -762,11 +762,17 @@ int mlx5dr_actions_build_ste_arr(struct mlx5dr_matcher *matcher,
|
||||
action->sampler->tx_icm_addr;
|
||||
break;
|
||||
case DR_ACTION_TYP_VPORT:
|
||||
attr.hit_gvmi = action->vport->caps->vhca_gvmi;
|
||||
dest_action = action;
|
||||
attr.final_icm_addr = rx_rule ?
|
||||
action->vport->caps->icm_address_rx :
|
||||
action->vport->caps->icm_address_tx;
|
||||
if (unlikely(rx_rule && action->vport->caps->num == MLX5_VPORT_UPLINK)) {
|
||||
/* can't go to uplink on RX rule - dropping instead */
|
||||
attr.final_icm_addr = nic_dmn->drop_icm_addr;
|
||||
attr.hit_gvmi = nic_dmn->drop_icm_addr >> 48;
|
||||
} else {
|
||||
attr.hit_gvmi = action->vport->caps->vhca_gvmi;
|
||||
dest_action = action;
|
||||
attr.final_icm_addr = rx_rule ?
|
||||
action->vport->caps->icm_address_rx :
|
||||
action->vport->caps->icm_address_tx;
|
||||
}
|
||||
break;
|
||||
case DR_ACTION_TYP_POP_VLAN:
|
||||
if (!rx_rule && !(dmn->ste_ctx->actions_caps &
|
||||
|
Loading…
Reference in New Issue
Block a user