mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 21:33:52 +00:00
net/mlx5: DR, Can't go to uplink vport on RX rule
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>
This commit is contained in:
parent
5665954293
commit
5b2a2523ee
1 changed files with 11 additions and 5 deletions
|
@ -874,11 +874,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 a new issue