* IGMP Unsolicited Report Interval too long for IGMPv3? @ 2013-07-22 10:50 William Manley 2013-07-22 20:17 ` David Miller 0 siblings, 1 reply; 12+ messages in thread From: William Manley @ 2013-07-22 10:50 UTC (permalink / raw) To: linux-kernel; +Cc: davem 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. There was a thread about this on linux-rdma in 2010 in the context of IP over Infiniband but it seems no patches got applied as a result of the discussion: http://www.mail-archive.com/linux-rdma@vger.kernel.org/msg05740.html Would the right patch reducing the unsolicited report interval for IGMPv3 be acceptable now? Thanks Will ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 10:50 IGMP Unsolicited Report Interval too long for IGMPv3? William Manley @ 2013-07-22 20:17 ` David Miller 0 siblings, 0 replies; 12+ messages in thread From: David Miller @ 2013-07-22 20:17 UTC (permalink / raw) To: william.manley; +Cc: linux-kernel Please use netdev@vger.kernel.org for networking issues. Thank you. ^ permalink raw reply [flat|nested] 12+ messages in thread
* IGMP Unsolicited Report Interval too long for IGMPv3? @ 2013-07-22 20:43 William Manley 2013-07-22 21:09 ` Ben Hutchings 2013-07-22 21:18 ` Benjamin LaHaise 0 siblings, 2 replies; 12+ messages in thread From: William Manley @ 2013-07-22 20:43 UTC (permalink / raw) To: netdev 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. There was a thread about this on linux-rdma in 2010 in the context of IP over Infiniband but it seems no patches got applied as a result of the discussion: http://www.mail-archive.com/linux-rdma@vger.kernel.org/msg05740.html Would the right patch reducing the unsolicited report interval for IGMPv3 be acceptable now? Thanks Will ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 20:43 William Manley @ 2013-07-22 21:09 ` Ben Hutchings 2013-07-22 21:18 ` Benjamin LaHaise 1 sibling, 0 replies; 12+ messages in thread From: Ben Hutchings @ 2013-07-22 21:09 UTC (permalink / raw) To: William Manley; +Cc: netdev On Mon, 2013-07-22 at 21:43 +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. > > There was a thread about this on linux-rdma in 2010 in the context of IP > over Infiniband but it seems no patches got applied as a result of the > discussion: > > http://www.mail-archive.com/linux-rdma@vger.kernel.org/msg05740.html > > Would the right patch reducing the unsolicited report interval for > IGMPv3 be acceptable now? I suggest you post a patch and find out what people think of it. That usually gets more response than asking in the abstract. Ben. -- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 20:43 William Manley 2013-07-22 21:09 ` Ben Hutchings @ 2013-07-22 21:18 ` Benjamin LaHaise 2013-07-22 21:51 ` Hannes Frederic Sowa 2013-07-22 22:06 ` Lukas Tribus 1 sibling, 2 replies; 12+ messages in thread From: Benjamin LaHaise @ 2013-07-22 21:18 UTC (permalink / raw) To: William Manley; +Cc: netdev 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. -ben > There was a thread about this on linux-rdma in 2010 in the context of IP > over Infiniband but it seems no patches got applied as a result of the > discussion: > > http://www.mail-archive.com/linux-rdma@vger.kernel.org/msg05740.html > > Would the right patch reducing the unsolicited report interval for > IGMPv3 be acceptable now? > > Thanks > > Will > > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- "Thought is the essence of where you are now." ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 21:18 ` Benjamin LaHaise @ 2013-07-22 21:51 ` Hannes Frederic Sowa 2013-07-25 23:42 ` David Miller 2013-07-22 22:06 ` Lukas Tribus 1 sibling, 1 reply; 12+ messages in thread From: Hannes Frederic Sowa @ 2013-07-22 21:51 UTC (permalink / raw) To: Benjamin LaHaise; +Cc: William Manley, netdev 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 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 21:51 ` Hannes Frederic Sowa @ 2013-07-25 23:42 ` David Miller 2013-07-26 13:11 ` Benjamin LaHaise 0 siblings, 1 reply; 12+ messages in thread From: David Miller @ 2013-07-25 23:42 UTC (permalink / raw) To: hannes; +Cc: bcrl, william.manley, netdev From: Hannes Frederic Sowa <hannes@stressinduktion.org> Date: Mon, 22 Jul 2013 23:51:08 +0200 > 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> Ben, please give Hannes the feedback he is asking for. Thanks. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-25 23:42 ` David Miller @ 2013-07-26 13:11 ` Benjamin LaHaise 2013-07-26 15:06 ` Hannes Frederic Sowa 0 siblings, 1 reply; 12+ messages in thread From: Benjamin LaHaise @ 2013-07-26 13:11 UTC (permalink / raw) To: David Miller; +Cc: hannes, william.manley, netdev On Thu, Jul 25, 2013 at 04:42:53PM -0700, David Miller wrote: > From: Hannes Frederic Sowa <hannes@stressinduktion.org> > Date: Mon, 22 Jul 2013 23:51:08 +0200 > > > 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> > > Ben, please give Hannes the feedback he is asking for. > > Thanks. I think Hannes' patch is good step in the right direction, so please add: Acked-by: Benjamin LaHaise <bcrl@kvack.org> -ben -- "Thought is the essence of where you are now." ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-26 13:11 ` Benjamin LaHaise @ 2013-07-26 15:06 ` Hannes Frederic Sowa 2013-07-26 15:15 ` Benjamin LaHaise 0 siblings, 1 reply; 12+ messages in thread From: Hannes Frederic Sowa @ 2013-07-26 15:06 UTC (permalink / raw) To: Benjamin LaHaise; +Cc: David Miller, william.manley, netdev On Fri, Jul 26, 2013 at 09:11:23AM -0400, Benjamin LaHaise wrote: > On Thu, Jul 25, 2013 at 04:42:53PM -0700, David Miller wrote: > > From: Hannes Frederic Sowa <hannes@stressinduktion.org> > > Date: Mon, 22 Jul 2013 23:51:08 +0200 > > > > > 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> > > > > Ben, please give Hannes the feedback he is asking for. > > > > Thanks. > > I think Hannes' patch is good step in the right direction, so please add: > Acked-by: Benjamin LaHaise <bcrl@kvack.org> I just send a new patch with the priority changes for ipv4 included. I copied your Acked-by, I hope this is ok. Thanks, Hannes ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-26 15:06 ` Hannes Frederic Sowa @ 2013-07-26 15:15 ` Benjamin LaHaise 0 siblings, 0 replies; 12+ messages in thread From: Benjamin LaHaise @ 2013-07-26 15:15 UTC (permalink / raw) To: David Miller, william.manley, netdev On Fri, Jul 26, 2013 at 05:06:51PM +0200, Hannes Frederic Sowa wrote: > On Fri, Jul 26, 2013 at 09:11:23AM -0400, Benjamin LaHaise wrote: > > I think Hannes' patch is good step in the right direction, so please add: > > Acked-by: Benjamin LaHaise <bcrl@kvack.org> > > I just send a new patch with the priority changes for ipv4 included. I copied > your Acked-by, I hope this is ok. Sure, no problem. Thanks for fixing this. -ben -- "Thought is the essence of where you are now." ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 21:18 ` Benjamin LaHaise 2013-07-22 21:51 ` Hannes Frederic Sowa @ 2013-07-22 22:06 ` Lukas Tribus 2013-07-22 22:30 ` Hannes Frederic Sowa 1 sibling, 1 reply; 12+ messages in thread From: Lukas Tribus @ 2013-07-22 22:06 UTC (permalink / raw) To: Benjamin LaHaise, William Manley, hannes@stressinduktion.org Cc: netdev@vger.kernel.org > Date: Mon, 22 Jul 2013 17:18:55 -0400 >> 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. Packet loss will always result in a delay and I think William is well aware of that. off-topic: 1 second is not a problem in IPTV, 10 seconds are ([1]). > 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. While this certainly makes sense, congestion is not the only reason for packet loss. There is no way to fix packet loss in lower network layers, like ADSL, satellite links or IPoAC. Improving retransmission by making it more predictable, bringing it closer to RFC proposals and real life problems makes a lot of sense, imho. This includes setting TC_PRIO_CONTROL, but I'm not sure it will fix Williams use case. lukas [1] http://en.wikipedia.org/wiki/Zap_time ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: IGMP Unsolicited Report Interval too long for IGMPv3? 2013-07-22 22:06 ` Lukas Tribus @ 2013-07-22 22:30 ` Hannes Frederic Sowa 0 siblings, 0 replies; 12+ messages in thread From: Hannes Frederic Sowa @ 2013-07-22 22:30 UTC (permalink / raw) To: Lukas Tribus; +Cc: Benjamin LaHaise, William Manley, netdev@vger.kernel.org On Tue, Jul 23, 2013 at 12:06:31AM +0200, Lukas Tribus wrote: > > Date: Mon, 22 Jul 2013 17:18:55 -0400 > >> 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. > > Packet loss will always result in a delay and I think William is well aware > of that. > > off-topic: 1 second is not a problem in IPTV, 10 seconds are ([1]). > > > > > 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. > > While this certainly makes sense, congestion is not the only reason for > packet loss. There is no way to fix packet loss in lower network layers, > like ADSL, satellite links or IPoAC. > > Improving retransmission by making it more predictable, bringing it closer > to RFC proposals and real life problems makes a lot of sense, imho. This > includes setting TC_PRIO_CONTROL, but I'm not sure it will fix Williams use > case. Yes, it was merely meant as an RFC without the appropriate changes for IPv4 (I somehow missed this in the patch marker :| ). Regarding the value of the IGMP unsolicited report interval, I would strictly stick to the RFCs. So a change for IGMPv3 would be appropriate IMHO. I would also suggest that posting patches would be favourable. I don't think it should be too much work. Thanks, Hannes ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2013-07-26 15:15 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-07-22 10:50 IGMP Unsolicited Report Interval too long for IGMPv3? William Manley 2013-07-22 20:17 ` David Miller -- strict thread matches above, loose matches on Subject: below -- 2013-07-22 20:43 William Manley 2013-07-22 21:09 ` Ben Hutchings 2013-07-22 21:18 ` Benjamin LaHaise 2013-07-22 21:51 ` Hannes Frederic Sowa 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
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.