I'm using 6.0 and a Xircom PCMCIA ethernet card (xirc2ps_cs). MULTICAST is enabled (so says ifconfig) However, I can't receive multicast packets unless the interface is switched to PROMISC or ALLMULTI. I do see that the multicast group was joined (via /proc/net/igmp), but no packets arrive.
As it turns out this may not be a bug - it is definitely a behavior difference between the 2.0.x and 2.2.x kernel though. In 2.0.x you are permitted to create a socket, join a group, and then bind the socket to the multicast address you are interested in. In 2.2.x, you must bind first, and then join the group.
Argh. Scratch that. It still will not work under 2.2.x, but works beautifully in all possible ways under 2.0.x. I have now verified this behavior with several ethernet cards using different drivers.
I've tracked down the problem further. It only happens with a PCMCIA ethernet card. A regular ethernet card works fine. The behavior happens with both pcmcia-cs 3.1.10 and 3.1.14
This is a kernel problem. Changing component.
Does this still occur with 3.1.18