[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20100826.151553.242147157.davem@davemloft.net>
Date: Thu, 26 Aug 2010 15:15:53 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: cl@...ux.com
Cc: rdreier@...co.com, linux-rdma@...r.kernel.org,
ogerlitz@...taire.com, jgunthorpe@...idianresearch.com,
yosefe@...taire.com, netdev@...r.kernel.org
Subject: Re: [IPoIB] Identify multicast packets and fix IGMP breakage V2
From: Christoph Lameter <cl@...ux.com>
Date: Thu, 26 Aug 2010 16:31:14 -0500 (CDT)
> @@ -271,6 +271,13 @@ static void ipoib_ib_handle_rx_wc(struct
> ipoib_ud_dma_unmap_rx(priv, mapping);
> ipoib_ud_skb_put_frags(priv, skb, wc->byte_len);
>
> + if ((wc->wc_flags & IB_WC_GRH) &&
> + IN6_IS_ADDR_MULTICAST(&((struct ipv6hdr *)skb->data)->daddr))
> +
> + skb->pkt_type = PACKET_MULTICAST;
> + else
> + skb->pkt_type = PACKET_HOST;
I really don't think you can assume there is an ipv6 header here
at all.
You'll need to parse the encapsulated protocol and process it as
ipv4 or ipv6 as needed.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists