All of lore.kernel.org
 help / color / mirror / Atom feed
* 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

* 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-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-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-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-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

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

* 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; +Cc: netdev

> 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 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 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 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

* 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

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
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.