<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi again Roland,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><!--StartFragment --><FONT face=Arial size=2>In looking at the code, this 
IPv6 group <FONT size=3><FONT size=2>(all routers) 
(0xff12:601b:ffff:0:0:0:0:2)</FONT> </FONT><FONT size=2>is going 
through</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2>the send only path in 
ipoib_multicast.c::ipoib_mcast_send where:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><!--StartFragment --><FONT face="Times New Roman" 
size=3> </FONT><PRE>        spin_lock_irqsave(&priv->lock, flags);
        mcast = __ipoib_mcast_find(dev, mgid);
        if (!mcast) {
                /* Let's create a new send only group now */
                ipoib_dbg_mcast(priv, "setting up send only multicast group for "
                                IPOIB_GID_FMT "\n", IPOIB_GID_ARG(*mgid));

                mcast = ipoib_mcast_alloc(dev, 0);
                if (!mcast) {
                        ipoib_warn(priv, "unable to allocate memory for "
                                   "multicast structure\n");
                        dev_kfree_skb_any(skb);
                        goto out;
                }

                set_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags);
                mcast->mcmember.mgid = *mgid;
                __ipoib_mcast_add(dev, mcast);
                list_add_tail(&mcast->list, &priv->multicast_list);
        }

        if (!mcast->ah) {
                if (skb_queue_len(&mcast->pkt_queue) < IPOIB_MAX_MCAST_QUEUE)
                        skb_queue_tail(&mcast->pkt_queue, skb);
                else
                        dev_kfree_skb_any(skb);

                if (mcast->query)
                        ipoib_dbg_mcast(priv, "no address vector, "
                                        "but multicast join already started\n");
                else if (test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags))
                        ipoib_mcast_sendonly_join(mcast);</PRE></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Although the sendonly_join code has been changed to 
do a full member rather than send only join,</FONT></DIV>
<DIV><FONT face=Arial size=2>it does not fall back to create the group if it 
does not already exist</FONT><FONT face=Arial size=2>. One wouldn't expect a 
send only</FONT></DIV>
<DIV><FONT face=Arial size=2>join to create the group if it didn't already 
exist.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Any idea on why this group is send only ? 
Don't end nodes need to both send and receive on the </FONT></DIV>
<DIV><FONT face=Arial size=2>all routers group ?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>-- Hal</FONT></DIV></BODY></HTML>