From: Roland Dreier <rdreier-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
To: Christoph Lameter <cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org>
Cc: Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Or Gerlitz <ogerlitz-smomgflXvOZWk0Htik3J/w@public.gmane.org>,
Jason Gunthorpe
<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>,
Yossi Etigin <yosefe-smomgflXvOZWk0Htik3J/w@public.gmane.org>
Subject: Re: [IPoIB] Identify Multicast packets and fix IGMP breakage
Date: Thu, 26 Aug 2010 13:49:24 -0700 [thread overview]
Message-ID: <adapqx5rtez.fsf@cisco.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1008261453510.21466-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org> (Christoph Lameter's message of "Thu, 26 Aug 2010 14:55:27 -0500 (CDT)")
> + /* According to Jason Gunthorpe byte 24 in the GRH has the MGID */
I think we could put a better explanation here than "Jason said so." In
fact since the GRH format matches the IPv6 header format, maybe we do
something like "((struct ipv6hdr *) skb->data)->daddr" to get at the
DGID being used.
> + if (IN6_IS_ADDR_MULTICAST(skb->data + 24))
> +
trivial but this blank line isn't needed here.
> + skb->pkt_type = PACKET_MULTICAST;
> +
or here
> + else
> + skb->pkt_type = PACKET_HOST;
also it's not clear to me why it's OK to do this test of the DGID if the
packet didn't have a GRH -- presumably we are just looking at random
uninitialized memory so we might incorrectly say some packets are
multicast if that byte happens to be 0xff. (or does that not matter?
if so why can't we just always make everything PACKET_MULTICAST?)
It seems the check should be something like
if ((wc->wc_flags & IB_WC_GRH) &&
IN6_IS_ADDR_MULTICAST(((struct ipv6hdr *) skb->data)->daddr))
> --- linux-2.6.orig/include/linux/in6.h 2010-08-26 14:11:39.000000000 -0500
> +++ linux-2.6/include/linux/in6.h 2010-08-26 14:11:52.000000000 -0500
> @@ -53,6 +53,9 @@
> extern const struct in6_addr in6addr_linklocal_allrouters;
> #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
> { { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2 } } }
> +
> +#define IN6_IS_ADDR_MULTICAST(a) (((const __u8 *) (a))[0] == 0xff)
We probably want to run this addition past netdev.
- R.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-08-26 20:49 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-23 17:16 IPoIB: Broken IGMP processing Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008231210010.9840-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-23 17:41 ` Jason Gunthorpe
[not found] ` <20100823174110.GK26549-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-08-23 18:10 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008231254300.10719-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-23 18:28 ` Jason Gunthorpe
[not found] ` <20100823182859.GL26549-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-08-23 19:27 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008231427130.12815-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-23 19:34 ` Yossi Etigin
[not found] ` <7E95F01E94AB484F83061FCFA35B39F8013249-QfUkFaTmzUSUvQqKE/ONIwC/G2K4zDHf@public.gmane.org>
2010-08-23 19:45 ` Jason Gunthorpe
[not found] ` <20100823194555.GN26549-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-08-23 19:50 ` Yossi Etigin
[not found] ` <7E95F01E94AB484F83061FCFA35B39F801324A-QfUkFaTmzUSUvQqKE/ONIwC/G2K4zDHf@public.gmane.org>
2010-08-25 14:43 ` Christoph Lameter
2010-08-23 19:59 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008231454230.12815-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-24 18:49 ` Jason Gunthorpe
2010-08-23 18:19 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008231317150.10719-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-23 18:30 ` Jason Gunthorpe
[not found] ` <20100823183044.GM26549-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-08-26 19:55 ` [IPoIB] Identify Multicast packets and fix IGMP breakage Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008261453510.21466-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-26 20:49 ` Roland Dreier [this message]
[not found] ` <adapqx5rtez.fsf-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2010-08-26 21:17 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008261613160.24174-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-26 21:29 ` Jason Gunthorpe
2010-08-26 21:31 ` [IPoIB] Identify multicast packets and fix IGMP breakage V2 Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008261629440.24174-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-26 22:15 ` David Miller
[not found] ` <20100826.151553.242147157.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2010-08-26 22:21 ` Jason Gunthorpe
[not found] ` <20100826222146.GA23025-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-08-26 23:26 ` [IPoIB] Identify multicast packets and fix IGMP breakage V3 Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008261825490.26351-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-26 23:43 ` Jason Gunthorpe
2010-08-26 23:57 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008261856090.29657-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-08-27 0:07 ` David Miller
2010-08-27 2:24 ` Christoph Lameter
[not found] ` <20100826234342.GA24333-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2010-08-27 0:02 ` Yossi Etigin
[not found] ` <7E95F01E94AB484F83061FCFA35B39F89BE276-QfUkFaTmzUSUvQqKE/ONIwC/G2K4zDHf@public.gmane.org>
2010-08-27 0:17 ` Jason Gunthorpe
2010-08-27 13:29 ` Christoph Lameter
2010-09-14 7:27 ` Or Gerlitz
[not found] ` <4C8F23DB.2040105-smomgflXvOZWk0Htik3J/w@public.gmane.org>
2010-09-14 14:02 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1008270827280.11792-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2010-09-28 18:09 ` Roland Dreier
2010-08-26 21:32 ` [IPoIB] Identify Multicast packets and fix IGMP breakage Roland Dreier
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=adapqx5rtez.fsf@cisco.com \
--to=rdreier-fyb4gu1cfyuavxtiumwx3w@public.gmane.org \
--cc=cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org \
--cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=ogerlitz-smomgflXvOZWk0Htik3J/w@public.gmane.org \
--cc=rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
--cc=yosefe-smomgflXvOZWk0Htik3J/w@public.gmane.org \
/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