From: "Timo Teräs" <timo.teras@iki.fi>
To: Doug Kehn <rdkehn@yahoo.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>, netdev@vger.kernel.org
Subject: Re: Multicast Fails Over Multipoint GRE Tunnel
Date: Wed, 16 Mar 2011 08:01:29 +0200 [thread overview]
Message-ID: <4D805239.6040905@iki.fi> (raw)
In-Reply-To: <553973.46912.qm@web39301.mail.mud.yahoo.com>
On 03/15/2011 11:35 PM, Doug Kehn wrote:
>> From: Timo Teräs <timo.teras@iki.fi>
>> Subject: Re: Multicast Fails Over Multipoint GRE Tunnel
>> To: "Eric Dumazet" <eric.dumazet@gmail.com>
>> Cc: "Doug Kehn" <rdkehn@yahoo.com>, netdev@vger.kernel.org
>> Date: Tuesday, March 15, 2011, 12:36 PM
>> On 03/15/2011 05:34 PM, Eric Dumazet
>> wrote:
>>> Le lundi 14 mars 2011 à 16:34 -0700, Doug Kehn a
>> écrit :
>>>> I'm running kernel version 2.6.36 on ARM XSCALE
>> (big-endian) and multicast over a multipoint GRE tunnel
>> isn't working. For my architecture, this worked on
>> 2.6.26.8. For x86, multicast over a multipoint GRE
>> tunnel worked with kernel version 2.6.31 but failed with
>> version 2.6.35. Multicast over a multipoint GRE tunnel
>> fails because ipgre_header() fails the 'if (iph->daddr)'
>> check and reutrns -t->hlen. ipgre_header() is being
>> called, from neigh_connected_output(), with a non-null
>> daddr; the contents of daddr is zero.
>
> I wasn't sure if the above patch was in addition too or in lieu of the partial revert of ipgre_header() suggested by Eric; both cases were attempted.
It was intended without the ipgre_header revert. The partial revert does
not differ from full revert related to my problem.
> The multicast scenario described does not work if only the arp_mc_map() patch is applied.
Uh. Right, the if test had wrong condition. The intention was to show
the idea that we create the multicast-to-multicast GRE NOARP mappings in
arp code where it should've been done in the first place (IMHO).
Could you try the below patch? That should work better. And the
ipgre_header should not be touched.
- Timo
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index 7927589..8c24845 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -215,6 +215,13 @@ int arp_mc_map(__be32 addr, u8 *haddr, struct
net_device *dev, int dir)
case ARPHRD_INFINIBAND:
ip_ib_mc_map(addr, dev->broadcast, haddr);
return 0;
+ case ARPHRD_IPGRE:
+ if (dev->addr_len == 4 &&
+ get_unaligned_be32(dev->broadcast) != INADDR_ANY)
+ memcpy(haddr, dev->broadcast, dev->addr_len);
+ else
+ memcpy(haddr, &addr, sizeof(addr));
+ return 0;
default:
if (dir) {
memcpy(haddr, dev->broadcast, dev->addr_len);
next prev parent reply other threads:[~2011-03-16 6:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-14 23:34 Multicast Fails Over Multipoint GRE Tunnel Doug Kehn
2011-03-15 15:34 ` Eric Dumazet
2011-03-15 16:36 ` Timo Teräs
2011-03-15 18:28 ` Timo Teräs
2011-03-15 21:33 ` Doug Kehn
2011-03-15 21:35 ` Doug Kehn
2011-03-16 6:01 ` Timo Teräs [this message]
2011-03-16 20:02 ` Doug Kehn
2011-03-27 16:17 ` Timo Teräs
2011-03-29 8:40 ` [PATCH] net: gre: provide multicast mappings for ipv4 and ipv6 Timo Teräs
2011-03-29 9:11 ` Eric Dumazet
2011-03-29 10:00 ` Timo Teräs
2011-03-29 20:26 ` Doug Kehn
2011-03-30 7:11 ` David Miller
2011-03-15 21:24 ` Multicast Fails Over Multipoint GRE Tunnel Doug Kehn
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=4D805239.6040905@iki.fi \
--to=timo.teras@iki.fi \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=rdkehn@yahoo.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).