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.