[dpdk-users] mlx5 Multicast Flows Not Working As Expected

Cliff Burdick shaklee3 at gmail.com
Tue Mar 10 05:10:09 CET 2020


Hi, I have a multicast flow at 239.0.12.1 that I want to send all
membership queries to that address (standard IGMP messages) to one queue,
and UDP port 555 on that IP to another queue.

I first tried to make a one rte_flow rule that matched a destination of
239.0.12.1 to port 0 with priority 1 go to queue 0, and another with
destination 239.0.12.1 and UDP port 555 to queue 1. Both of these have a
match on any Ethernet address. None of the UDP messages make it through,
but the IGMP messages do. I can see in the rx_multicast_phy counter on the
NIC that the card sees the packets, but they're not arriving on either
queue.

Next I tried removing the UDP rule and only leaving the flow for
239.0.12.1, but made it priority 0 since there's no secondary rule. This
worked in the sense that all traffic, including the UDP traffic arrived on
queue 0. However, this doesn't work well with my application since queue 0
is supposed to be control information, while queue 1 was data.

I have tried to set rte_eth_allmulticast_enable, but this doesn't seem to
make any difference. Setting promiscuous mode doesn't either. The mlx5
documentation doesn't mention whether priorities work in mlx5 like this or
not, but I'm hoping I can find a way to differentiate these two types of
packets.

More info:
DPDK 19.11 with mlx5 on ConnectX-5
Ubuntu 18.04
OFED 4.7-3.2.9.0
FW 16.26.1040

Any help would be appreciated. Thanks!


More information about the users mailing list