From: Hannes Frederic Sowa <hannes@stressinduktion.org>
To: Benjamin LaHaise <bcrl@kvack.org>
Cc: William Manley <william.manley@youview.com>, netdev@vger.kernel.org
Subject: Re: IGMP Unsolicited Report Interval too long for IGMPv3?
Date: Mon, 22 Jul 2013 23:51:08 +0200 [thread overview]
Message-ID: <20130722215108.GG6538@order.stressinduktion.org> (raw)
In-Reply-To: <20130722211855.GL19643@kvack.org>
On Mon, Jul 22, 2013 at 05:18:55PM -0400, Benjamin LaHaise wrote:
> On Mon, Jul 22, 2013 at 09:43:57PM +0100, 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".
> >
> > In the kernel this seems to be hard coded to be chosen randomly between
> > 0-10s. In our use-case (IPTV) this is too long as it can cause channel
> > change to be slow in the presence of packet loss.
> >
> > I would guess that this 10s has come from IGMPv2 RFC2236, which was
> > reduced to 1s in IGMPv3 RFC3376.
>
> Reducing the timeout does not solve the problem you are encountering, as
> any packet loss will still result in a 1 second delay. I've encountered
> similar issues dealing with LCP Echo request/replies for keepalive
> messages on PPP sessions. The correct approach is to queue the IGMP
> multicast join with a higher priority than other traffic in the system
> so that the requests are not lost due to congestion of a single queue.
> Sending packets with an 802.1p header might be appropriate in your
> use-case, or perhaps using higher priority internal queues.
Yes, we can do a little bit better. What do you think?
[PATCH net-next] ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL
Reported-by: William Manley <william.manley@youview.com>
Suggested-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
---
net/ipv6/mcast.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 99cd65c..db25b8e 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -44,6 +44,7 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
+#include <linux/pkt_sched.h>
#include <net/mld.h>
#include <linux/netfilter.h>
@@ -1376,6 +1377,7 @@ static struct sk_buff *mld_newpack(struct inet6_dev *idev, int size)
if (!skb)
return NULL;
+ skb->priority = TC_PRIO_CONTROL;
skb_reserve(skb, hlen);
if (__ipv6_get_lladdr(idev, &addr_buf, IFA_F_TENTATIVE)) {
@@ -1769,7 +1771,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
rcu_read_unlock();
return;
}
-
+ skb->priority = TC_PRIO_CONTROL;
skb_reserve(skb, hlen);
if (ipv6_get_lladdr(dev, &addr_buf, IFA_F_TENTATIVE)) {
--
1.8.3.1
next prev parent reply other threads:[~2013-07-22 21:51 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-22 20:43 IGMP Unsolicited Report Interval too long for IGMPv3? William Manley
2013-07-22 21:09 ` Ben Hutchings
2013-07-24 13:38 ` [PATCH] net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3 William Manley
2013-07-24 13:45 ` William Manley
2013-07-24 14:51 ` Sergei Shtylyov
2013-07-25 12:14 ` [PATCH 1/2] " William Manley
2013-07-25 12:14 ` [PATCH 2/2] net: igmp: Allow user-space configuration of igmp unsolicited report interval William Manley
2013-07-26 16:36 ` Hannes Frederic Sowa
2013-07-29 14:21 ` [PATCH v3 1/2] net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3 William Manley
2013-07-29 14:21 ` [PATCH v3 2/2] net: igmp: Allow user-space configuration of igmp unsolicited report interval William Manley
2013-07-30 6:14 ` Hannes Frederic Sowa
2013-07-30 23:55 ` David Miller
2013-07-31 6:34 ` Hannes Frederic Sowa
2013-07-31 9:47 ` William Manley
2013-08-06 18:03 ` IGMP Unsolicited report interval patches William Manley
2013-08-06 18:03 ` [PATCH v4 1/3] net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3 William Manley
2013-08-07 0:45 ` Hannes Frederic Sowa
2013-08-07 13:43 ` Benjamin LaHaise
2013-08-06 18:03 ` [PATCH v4 2/3] net: igmp: Don't flush routing cache when force_igmp_version is modified William Manley
2013-08-07 0:45 ` Hannes Frederic Sowa
2013-08-07 13:43 ` Benjamin LaHaise
2013-08-06 18:03 ` [PATCH v4 3/3] net: igmp: Allow user-space configuration of igmp unsolicited report interval William Manley
2013-08-07 1:00 ` Hannes Frederic Sowa
2013-08-07 13:43 ` Benjamin LaHaise
2013-08-07 1:03 ` IGMP Unsolicited report interval patches Hannes Frederic Sowa
2013-08-08 9:01 ` Hannes Frederic Sowa
2013-08-09 18:28 ` David Miller
2013-07-31 5:07 ` [PATCH v3 2/2] net: igmp: Allow user-space configuration of igmp unsolicited report interval Bill Fink
2013-07-29 21:34 ` [PATCH v3 1/2] net: igmp: Reduce Unsolicited report interval to 1s when using IGMPv3 Hannes Frederic Sowa
2013-07-26 16:32 ` [PATCH " Hannes Frederic Sowa
2013-07-26 16:39 ` Hannes Frederic Sowa
2013-07-29 14:39 ` William Manley
2013-07-29 14:56 ` Hannes Frederic Sowa
2013-07-22 21:18 ` IGMP Unsolicited Report Interval too long for IGMPv3? Benjamin LaHaise
2013-07-22 21:51 ` Hannes Frederic Sowa [this message]
2013-07-25 23:42 ` David Miller
2013-07-26 13:11 ` Benjamin LaHaise
2013-07-26 15:06 ` Hannes Frederic Sowa
2013-07-26 15:15 ` Benjamin LaHaise
2013-07-22 22:06 ` Lukas Tribus
2013-07-22 22:30 ` Hannes Frederic Sowa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130722215108.GG6538@order.stressinduktion.org \
--to=hannes@stressinduktion.org \
--cc=bcrl@kvack.org \
--cc=netdev@vger.kernel.org \
--cc=william.manley@youview.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).