Jason,
I wrote a test program to verify that multicast is working in rxe
since there don't seem to be any pyverbs tests that actually test this.
It turns out that it doesn't work for several reasons most of which
I have fixed. But there is one that I can't figure out.
The rxe driver calls dev_mc_add() with a MAC address to add the
multicast MAC address to the device which shows up when you type
'ip maddr'. But nothing comes through from the network to the driver.
Wireshark does see the packets but they don't get to the IP or
UDP layers in the netdev stack.
If I run iperf -u and bind to a multicast address it works fine and
when you type ip maddr you get both a link: MAC address and an
inet: IP multicast address. In fact if you start an iperf server with
the same multicast address I am testing with and just let it sit
there my test traffic also come through to the rxe driver.
So creating the IP mcast address seems critical to letting the
netdev stack receive traffic.
I tried creating a separate UDP socket bound to the mcast address
but it doesn't seem to create the required IP address.
Any ideas would be welcome.
Bob