SEARCH  

NEWS

2010.10.06:11:36:28
Spotkania Netcamp wracają już 14 października
Fundacja Netcamp zaprasza na pierwsze po wakacjach spotkanie branży internetowej, które odbędzie się w czwartek 14 października 2010 r. o godzinie 18:00 w Klubie 13 Muz w Szczecinie. Gościem specjalnym będzie startup Zubibu - laureat nagrody publiczności konkursu Start with e-nnovation, który opowie o mobilnych sklepach internetowych.

 

messageID:561260007132
author:Jason Gunthorpe
title:Re IPoIB Identify multicast packets and fi
On Thu, 26 Aug 2010, Jason Gunthorpe wrote: The 40 bytes at this location are defined by the HW specification to be an IB GRH which has an identical layout to an IPv6 header. Roland is right, it would be clearer to use ib_grh - dgid Ok but then we have no nice function that checks for multicast anymore. Subject: [IPoIB] Identify multicast packets and fix IGMP breakage V3 IGMP processing is broken because the IPOIB does not set the skb- pkt_type the right way for Multicast traffic. All incoming packets are set to PACKET_HOST which means that the igmp_recv() function will ignore the IGMP broadcasts/multicasts. This in turn means that the IGMP timers are firing and are sending information about multicast subscriptions unnecessarily. In a large private network this can cause traffic spikes. Signed-off-by: Christoph Lameter <cl@xxxxxxxxx --- Index: linux-2.6/drivers/infiniband/ulp/ipoib/ipoib_ib.c =================================================================== --- linux-2.6.orig/drivers/infiniband/ulp/ipoib/ipoib_ib.c 2010-08-26 18:24:07.842079559 -0500 +++ linux-2.6/drivers/infiniband/ulp/ipoib/ipoib_ib.c 2010-08-26 18:25:33.859815544 -0500 @@ -271,6 +271,14 @@ ipoib_ud_dma_unmap_rx(priv, mapping); ipoib_ud_skb_put_frags(priv, skb, wc- byte_len); + /* First byte of dgid signals multicast when 0xff */ + if ((wc- wc_flags & IB_WC_GRH) && + ((struct ib_grh *)skb- data)- dgid.raw[0] == 0xff) + + skb- pkt_type = PACKET_MULTICAST; + else + skb- pkt_type = PACKET_HOST; + skb_pull(skb, IB_GRH_BYTES); skb- protocol = ((struct ipoib_header *) skb- data)- proto; @@ -281,9 +289,6 @@ dev- stats.rx_bytes += skb- len; skb- dev = dev; - /* XXX get correct PACKET_ type here */ - skb- pkt_type = PACKET_HOST; - if (test_bit(IPOIB_FLAG_CSUM, &priv- flags) && likely(wc- csum_ok)) skb- ip_summed = CHECKSUM_UNNECESSARY; -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at rel="nofollow" vger.kernel.org/majordomo-info.html vger.kernel.org/majordomo-info.html
Index