<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: [openib-general] Multicast address aliasing in IPoIB</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: David M. Brean [<A HREF="mailto:David.Brean@Sun.COM">mailto:David.Brean@Sun.COM</A>] </FONT>
<BR><FONT SIZE=2>> Sent: Thursday, September 09, 2004 3:52 PM</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> The IBTA allows multiple MGIDs to map to a MLID.  That is the </FONT>
<BR><FONT SIZE=2>> aliasing </FONT>
<BR><FONT SIZE=2>> mechanism on IB.  As a result, it seems ok to have IP multicast </FONT>
<BR><FONT SIZE=2>> addresses to map 1-1 to MGIDs.  As you know, the IPoIB multicast </FONT>
<BR><FONT SIZE=2>> hardware address is a special format of the MGID.</FONT>
</P>

<P><FONT SIZE=2>Right, but this only goes out on the wire. I.e. in the case of such aliasing</FONT>
<BR><FONT SIZE=2>n MGIDs to single MLID, it'll be filtered by the HCAs, because QPs in the </FONT>
<BR><FONT SIZE=2>HCA are connected to specific MGIDs not LIDs.</FONT>
</P>

<P><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> So, the OS should not need to map more than one IP multicast </FONT>
<BR><FONT SIZE=2>> address to </FONT>
<BR><FONT SIZE=2>> a IPoIB hardware address.  [There are other steps needed to </FONT>
<BR><FONT SIZE=2>> program the </FONT>
<BR><FONT SIZE=2>> CA interface and obviously the SM must perform some internal mapping </FONT>
<BR><FONT SIZE=2>> management.]</FONT>
</P>

<P><FONT SIZE=2>The problem is based on how Linux works. The IPoIB plugs into the OS </FONT>
<BR><FONT SIZE=2>as an Ethernet driver. Therefore, it is subject to the Ethernet rules, and </FONT>
<BR><FONT SIZE=2>from the OS, it only get lists of "Ethernet" multicast addresses. The notification</FONT>
<BR><FONT SIZE=2>for additional HW multicast address, will only be delivered to the IPoIB</FONT>
<BR><FONT SIZE=2>driver if there is no Ethernet aliasing. Otherwise, Linux will just maintain</FONT>
<BR><FONT SIZE=2>a reference count per HW address. Therefore, there is a problem with </FONT>
<BR><FONT SIZE=2>the implementation of the IPoIB driver as an Ethernet driver. </FONT>
<BR><FONT SIZE=2>Fixing this problem requires a kernel patch (or a very ugly solution).</FONT>
</P>

<P><FONT SIZE=2>-Dror</FONT>
</P>

</BODY>
</HTML>