Comment 62 for bug 411688

Revision history for this message
In , Piotr Gorski (k-piotr) wrote :

All problems with RTP module flooding network, Wifi are caused by lack of IGMP support in rtp_send module.

When pulseaudio with rtp_recv module is started proper IGMPv2 signalling works like it should:

root@orangepione:~# tshark -i eth0 -Y "igmp"
Capturing on 'eth0'
117 6.950723148 192.168.254.141 -> 239.255.1.56 IGMPv2 46 Membership Report group 239.255.1.56
177 10.430705605 192.168.254.141 -> 239.255.1.56 IGMPv2 46 Membership Report group 239.255.1.56
215 13.660683494 192.168.254.141 -> 239.255.1.56 IGMPv2 46 Membership Report group 239.255.1.56

Pulseaudio creates Multicast group (I don't use default group). As IGMP signalling is OK - IGMP capable switches enable that multicast group only on ports that need it.

If pulseaudio is configured with rtp_send module - there is no IGMP signalling.

Looking at code of module-rtp-recv.c we can find:

            mr4.imr_multiaddr = ((const struct sockaddr_in*) sa)->sin_addr;
            r = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mr4, sizeof(mr4));

IP_ADD_MEMBERSHIP tells kernel to join multicast group.

There is no such command is module-rtp-send.c

It needs fixing ASAP