Re: [PATCH] net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3
From: William Manley <hidden>
Date: 2013-07-24 13:45:35
On 24/07/13 14:38, William Manley wrote:
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-existant) multicast group. The distribution of timings for the second join differ based upon setting /proc/sys/net/ipv4/conf/eth0/force_igmp_version. --- net/ipv4/igmp.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
I'm also working on a patch which builds on this adding a procfs knob similar to force_igmp_version but called "force_igmp_unsolicited_report_interval". This will allow the interval to be overridden from user-space independent of the version of IGMP in use as for our use-case we want the interval to be short even for IGMPv2. Thanks Will