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.


Reply via email to