<html><body>
<p>According to IPoIB RFC4391 section 5, once IPoIB broadcast group has been joined, the IPoIB link should be UP, since it's ready for data transfer, the interface should be able to run for broadcast and unicast, do not need to wait for all multicast join successfully. Here is the patch to allow IPoIB interface running without waiting for all multicast join succesful, like all host group multicast join .... Here is the patch:<br>
<br>
diff -urpN ipoib/ipoib_multicast.c ipoib-patch/ipoib_multicast.c<br>
--- ipoib/ipoib_multicast.c     2006-11-29 13:57:37.000000000 -0800<br>
+++ ipoib-patch/ipoib_multicast.c       2007-02-03 00:52:23.000000000 -0800<br>
@@ -566,6 +566,7 @@ void ipoib_mcast_join_task(void *dev_ptr<br>
 <br>
        if (!test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags)) {<br>
                ipoib_mcast_join(dev, priv->broadcast, 0);<br>
+               netif_carrier_on(dev);<br>
                return;<br>
        }<br>
 <br>
@@ -599,7 +600,6 @@ void ipoib_mcast_join_task(void *dev_ptr<br>
        ipoib_dbg_mcast(priv, "successfully joined all multicast groups\n");<br>
 <br>
        clear_bit(IPOIB_MCAST_RUN, &priv->flags);<br>
-       netif_carrier_on(dev);<br>
 }<br>
 <br>
 int ipoib_mcast_start_thread(struct net_device *dev)<br>
<br>
<i>(See attached file: multicast.patch)</i><br>
<br>
<a href="http://www.rfc-editor.org/rfc/rfc4391.txt">http://www.rfc-editor.org/rfc/rfc4391.txt</a>   <br>
<br>
5.  Setting Up an IPoIB Link<br>
<br>
   The broadcast-GID, as defined in the previous section, MUST be set up<br>
   for an IPoIB subnet to be formed.  Every IPoIB interface MUST<br>
   "FullMember" join the IB multicast group defined by the broadcast-<br>
   GID.  This multicast group will henceforth be referred to as the <br>
   broadcast group.  The join operation returns the MTU, the Q_Key, and<br>
   other parameters associated with the broadcast group.  The node then<br>
   associates the parameters received as a result of the join operation<br>
   with its IPoIB interface.  The broadcast group also serves to provide<br>
   a link-layer broadcast service for protocols like ARP, net-directed,<br>
   subnet-directed, and all-subnets-directed broadcasts in IPv4 over IB<br>
   networks.<br>
<br>
   The join operation is successful only if the Subnet Manager (SM)<br>
   determines that the joining node can support the MTU registered with<br>
   the broadcast group [RFC4392] ensuring support for a common link MTU.<br>
   The SM also ensures that all the nodes joining the broadcast-GID have<br>
   paths to one another and can therefore send and receive unicast<br>
   packets.  It further ensures that all the nodes do indeed form a<br>
   multicast tree that allows packets sent from any member to be<br>
   replicated to every other member.   Thus, the IPoIB link is formed by<br>
   the IPoIB nodes joining the broadcast group.  There is no physical<br>
   demarcation of the IPoIB link other than that determined by the<br>
   broadcast group membership.<br>
<br>
<br>
Shirley Ma<br>
<br>
<br>
<img width="16" height="16" src="cid:2__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt="Inactive hide details for Shirley Ma/Beaverton/IBM@IBMUS">Shirley Ma/Beaverton/IBM@IBMUS<br>
<br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="background-image:url(cid:3__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com); background-repeat: no-repeat; " width="40%">
<ul>
<ul>
<ul>
<ul><b><font size="2">Shirley Ma/Beaverton/IBM@IBMUS</font></b><font size="2"> </font><br>
<font size="2">Sent by: openib-general-bounces@openib.org</font>
<p><font size="2">02/02/07 08:58 PM</font></ul>
</ul>
</ul>
</ul>
</td><td width="60%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<div align="right"><font size="2">To</font></div></td><td width="100%"><img width="1" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<font size="2">openib-general@openib.org</font></td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<div align="right"><font size="2">cc</font></div></td><td width="100%"><img width="1" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""><br>
</td></tr>

<tr valign="top"><td width="1%"><img width="58" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<div align="right"><font size="2">Subject</font></div></td><td width="100%"><img width="1" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""><br>
<font size="2">[openib-general] Multicast join group failure prevents IPoIB performing</font></td></tr>
</table>

<table border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="58"><img width="1" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""></td><td width="336"><img width="1" height="1" src="cid:4__=08BBF8E4DFC806868f9e8a93df938@us.ibm.com" border="0" alt=""></td></tr>
</table>
</td></tr>
</table>
<br>
<font size="4">When bringing IPoIB interface up, I hit default group multicast join failure. (This could be fixed in SM set up?)<br>
ib0: multicast join failed for xxxx, status -22<br>
Then the interface was UP but not RUNNING. So the nodes couldn't ping each other. I think the right behavior of the interface should be UP and RUNNING even with some multicast join failure. I would like to provide a patch if there is no problem. Please advise.<br>
<br>
Thanks<br>
Shirley Ma</font><tt>_______________________________________________<br>
openib-general mailing list<br>
openib-general@openib.org<br>
</tt><tt><a href="http://openib.org/mailman/listinfo/openib-general">http://openib.org/mailman/listinfo/openib-general</a></tt><tt><br>
<br>
To unsubscribe, please visit </tt><tt><a href="http://openib.org/mailman/listinfo/openib-general">http://openib.org/mailman/listinfo/openib-general</a></tt><br>
</body></html>