]> git.baikalelectronics.ru Git - kernel.git/commit
net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3
authorWilliam Manley <william.manley@youview.com>
Tue, 6 Aug 2013 18:03:13 +0000 (19:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Aug 2013 18:27:46 +0000 (11:27 -0700)
commite94b7ebd87392a225995d7d5f81054660216cdb2
tree0deaa52ea74518733b85c0527d57f3e1a3b11d6d
parent12262db0f9426a2944b41c395d7636374eca35b7
net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3

If an IGMP join packet is lost you will not receive data sent to the
multicast group so if no data arrives from that multicast group in a
period of time after the IGMP join a second IGMP join will be sent.  The
delay between joins is the "IGMP Unsolicited Report Interval".

Previously this value was hard coded to be chosen randomly between 0-10s.
This can be too long for some use-cases, such as IPTV as it can cause
channel change to be slow in the presence of packet loss.

The value 10s has come from IGMPv2 RFC2236, which was reduced to 1s in
IGMPv3 RFC3376.  This patch makes the kernel use the 1s value from the
later RFC if we are operating in IGMPv3 mode.  IGMPv2 behaviour is
unaffected.

Tested with Wireshark and a simple program to join a (non-existent)
multicast group.  The distribution of timings for the second join differ
based upon setting /proc/sys/net/ipv4/conf/eth0/force_igmp_version.

Signed-off-by: William Manley <william.manley@youview.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/igmp.c