[PATCH V3 2/2] net/mlx5: add support for flows targeting multicast MAC addresses

Thomas Monjalon thomas at monjalon.net
Mon Aug 25 16:52:07 CEST 2025


25/08/2025 16:13, Gavin Li:
> Rules for multicast MAC addresses are intended to filter multicast traffic
> and are managed through multicast MAC add/remove APIs.

You should name the functions to be explicit.
Also it is not only managed via DPDK API,
as you say below we also retrieve kernel addresses.

> In mlx5_dev_spawn
> function, devices (PF, VFs, and SFs) retrieve the netdev-configured MAC
> addresses via netlink and store them in the PMD device data, which
> includes multicast MAC addresses.
> 
> Previously, flows for multicast MAC addresses were incorrectly disabled,
> causing the multicast MAC add API to stop working.

To be clear, it was blocking addresses added in DPDK,
not ones created in kernel, right?

> As a result, multicast
> traffic directed to those multicast MAC addresses was not received.
> 
> To resolve this and update the multicast MAC address rules, create them
> within mlx5_traffic_enable.

Actually you allow default rules for multicast addresses to be created.

> -		if (!memcmp(mac, &cmp, sizeof(*mac)) || rte_is_multicast_ether_addr(mac))
> +		/* Add flows for unicast and multicast mac addresses added by API. */
> +		if (!memcmp(mac, &cmp, sizeof(*mac)) ||
> +		    !BITFIELD_ISSET(priv->mac_own, i) ||
> +		    (dev->data->all_multicast && rte_is_multicast_ether_addr(mac)))
>  			continue;

PS: you forgot to use --in-reply-to to keep all versions in the same mail thread.




More information about the stable mailing list