Recheck-request: rebase=next-net-mlx, iol-compile-arm64-testing Regards, Maayan Kashani
> -----Original Message----- > From: Maayan Kashani <[email protected]> > Sent: Monday, 12 January 2026 11:25 > To: [email protected] > Cc: Maayan Kashani <[email protected]>; Raslan Darawsheh > <[email protected]>; [email protected]; Dariusz Sosnowski > <[email protected]>; Slava Ovsiienko <[email protected]>; Bing > Zhao <[email protected]>; Ori Kam <[email protected]>; Suanming Mou > <[email protected]>; Matan Azrad <[email protected]> > Subject: [PATCH 4/4] net/mlx5: fix redundant control rules in promiscuous > mode > > When promiscuous mode is enabled, the device receives all traffic regardless > of destination MAC address. Previously, the code was setting both the > promiscuous flag AND the DMAC/multicast control flow rules, which is > redundant. > > This patch makes the DMAC and multicast/broadcast control flow rules > conditional on NOT being in promiscuous mode. When promiscuous mode is > enabled, only the MLX5_CTRL_PROMISCUOUS flag is set. > > Fixes: 9fa7c1cddb85 ("net/mlx5: create control flow rules with HWS") > Cc: [email protected] > > Signed-off-by: Maayan Kashani <[email protected]> > --- > drivers/net/mlx5/mlx5_trigger.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_trigger.c > b/drivers/net/mlx5/mlx5_trigger.c index 028844e45d6..b38ba9022ea 100644 > --- a/drivers/net/mlx5/mlx5_trigger.c > +++ b/drivers/net/mlx5/mlx5_trigger.c > @@ -1682,13 +1682,17 @@ mlx5_traffic_enable_hws(struct rte_eth_dev > *dev) > dev->data->port_id, -ret); > goto error; > } > - if (dev->data->promiscuous) > + if (dev->data->promiscuous) { > flags |= MLX5_CTRL_PROMISCUOUS; > - if (dev->data->all_multicast) > - flags |= MLX5_CTRL_ALL_MULTICAST; > - else > - flags |= MLX5_CTRL_BROADCAST | > MLX5_CTRL_IPV4_MULTICAST | MLX5_CTRL_IPV6_MULTICAST; > - flags |= MLX5_CTRL_DMAC; > + } else { > + if (dev->data->all_multicast) > + flags |= MLX5_CTRL_ALL_MULTICAST; > + else > + flags |= (MLX5_CTRL_BROADCAST | > + MLX5_CTRL_IPV4_MULTICAST | > + MLX5_CTRL_IPV6_MULTICAST); > + flags |= MLX5_CTRL_DMAC; > + } > if (priv->vlan_filter_n) > flags |= MLX5_CTRL_VLAN_FILTER; > return mlx5_flow_hw_ctrl_flows(dev, flags); > -- > 2.21.0

