RDMA/mlx5: Fix drop packet rule in egress table
Initial drop action support missed that drop action can be added to egress
flow tables as well. Add the missing support.
This requires making sure that dest_type isn't set to PORT which in turn
exposes a possibility of passing dst while indicating number of dsts as
zero. Explicitly check for number of dsts and pass the appropriate
pointer.
Fixes: f29de9eee7
("RDMA/mlx5: Add support for drop action in DV steering")
Link: https://lore.kernel.org/r/20210318135123.680759-1-leon@kernel.org
Reviewed-by: Mark Bloch <markb@nvidia.com>
Signed-off-by: Maor Gottlieb <maorg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
49695e95ce
commit
c73700806d
|
@ -1528,8 +1528,8 @@ static struct mlx5_ib_flow_handler *raw_fs_rule_add(
|
|||
dst_num++;
|
||||
}
|
||||
|
||||
handler = _create_raw_flow_rule(dev, ft_prio, dst, fs_matcher,
|
||||
flow_context, flow_act,
|
||||
handler = _create_raw_flow_rule(dev, ft_prio, dst_num ? dst : NULL,
|
||||
fs_matcher, flow_context, flow_act,
|
||||
cmd_in, inlen, dst_num);
|
||||
|
||||
if (IS_ERR(handler)) {
|
||||
|
@ -1885,8 +1885,9 @@ static int get_dests(struct uverbs_attr_bundle *attrs,
|
|||
else
|
||||
*dest_id = mqp->raw_packet_qp.rq.tirn;
|
||||
*dest_type = MLX5_FLOW_DESTINATION_TYPE_TIR;
|
||||
} else if (fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_EGRESS ||
|
||||
fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_RDMA_TX) {
|
||||
} else if ((fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_EGRESS ||
|
||||
fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_RDMA_TX) &&
|
||||
!(*flags & MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP)) {
|
||||
*dest_type = MLX5_FLOW_DESTINATION_TYPE_PORT;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue