net/mlx4: fix empty ETH spec with VLAN support
Checks
Commit Message
When the ETH spec is empty MLX4 PMD doesn't allow match other criteria,
which means the flow should be promisc one.
Currently, PMD validates this by setting flow->promisc bit when ETH spec
is empty and checking whether there is other rte_flow_item followed
when flow->promisc is on.
However, commit [1] adds support to match traffic only on VLAN id, the
above validation logic should be changed accordingly.
This patch changes the above validate logic by skipping flow->promisc
check if this item is VLAN.
Fixes: c0d239263156 ("net/mlx4: support flow w/o ETH spec and with VLAN")
Cc: stable@dpdk.org
[1]:
commit c0d239263156 ("net/mlx4: support flow w/o ETH spec and with VLAN")
Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/net/mlx4/mlx4_flow.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
Hi,
> -----Original Message-----
> From: Xiaoyu Min <jackmin@nvidia.com>
> Sent: Monday, November 22, 2021 3:53 PM
> To: Matan Azrad <matan@nvidia.com>; Slava Ovsiienko
> <viacheslavo@nvidia.com>; Dekel Peled <dekelp@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: [PATCH] net/mlx4: fix empty ETH spec with VLAN support
>
> When the ETH spec is empty MLX4 PMD doesn't allow match other criteria,
> which means the flow should be promisc one.
>
> Currently, PMD validates this by setting flow->promisc bit when ETH spec is
> empty and checking whether there is other rte_flow_item followed when
> flow->promisc is on.
>
> However, commit [1] adds support to match traffic only on VLAN id, the
> above validation logic should be changed accordingly.
>
> This patch changes the above validate logic by skipping flow->promisc check
> if this item is VLAN.
>
> Fixes: c0d239263156 ("net/mlx4: support flow w/o ETH spec and with VLAN")
> Cc: stable@dpdk.org
>
> [1]:
> commit c0d239263156 ("net/mlx4: support flow w/o ETH spec and with
> VLAN")
>
> Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -713,7 +713,8 @@ mlx4_flow_prepare(struct mlx4_priv *priv,
flow->internal = 1;
continue;
}
- if (flow->promisc || flow->allmulti) {
+ if ((item->type != RTE_FLOW_ITEM_TYPE_VLAN && flow->promisc) ||
+ flow->allmulti) {
msg = "mlx4 does not support additional matching"
" criteria combined with indiscriminate"
" matching on Ethernet headers";