<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:Arial;
        color:navy;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:Arial;
        color:navy;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Tahoma;
        color:blue;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'>Hi,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'>On windows 2008 run “servermanagercmd.exe
-install NPAS-RRAS-Services”. This installs routing and remote access
packages.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'>We have clients that already using
multicast as you see in production environment. Changing this not only breaks
functionality but requires additional development in SM or switch (wherever multicast
groups are managed).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'>Regards,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'>Anatoly.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Tahoma><span style='font-size:
11.0pt;font-family:Tahoma;color:blue'><o:p> </o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
ofw-bounces@lists.openfabrics.org [mailto:ofw-bounces@lists.openfabrics.org] <b><span
style='font-weight:bold'>On Behalf Of </span></b><st1:PersonName w:st="on">Slava
 Strebkov</st1:PersonName><br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, November 04, 2008
11:39<br>
<b><span style='font-weight:bold'>To:</span></b> Tzachi Dar;
ofw@lists.openfabrics.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> [ofw] RE: Problem on
multicast flow</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hi,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>1)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>netsh>routing ip igmp<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>install<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>add interface "interface name of
IPoIB adapter"  igmpprototype=igmprtrv2<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>exit<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>On 2008 you may need to enable
“Routing and Remote Access” from Server Manager=>Network Policy
and Access=> Add Roles.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Before using netsh.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>2) We saw interoperability with Linux
hosts as well.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Slava<o:p></o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=3 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Tzachi Dar
[mailto:tzachid@mellanox.co.il] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, November 04, 2008
11:32 AM<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">Slava
 Strebkov</st1:PersonName>; ofw@lists.openfabrics.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> RE: Problem on multicast
flow</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>1) How do you force your servers to use
IGMP v2?</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>2) Will your method interop with Linux as
well? I'm looking in the spec to find a much between ipv4 multicast addresses
and IB multicast GID but with no success.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>In any case, even if there is no enforcement
in the spec, I'm afraid that if they are using different mgids than things
won't work.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Thanks</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Tzachi</span></font><o:p></o:p></p>

</div>

<blockquote style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 3.0pt;
margin-left:3.0pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=3 width="100%" align=center tabIndex=-1>

</span></font></div>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><font
size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> <st1:PersonName
w:st="on">Slava Strebkov</st1:PersonName> [mailto:slavas@voltaire.com] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, November 04, 2008
11:12 AM<br>
<b><span style='font-weight:bold'>To:</span></b> Tzachi Dar;
ofw@lists.openfabrics.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> RE: Problem on multicast
flow</span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hi,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>The attached test was compiled and run on
server 2003 x64 and server 2008 x86.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I used IPoIB without your patch, as is.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I got at the end <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Pass percentage: 100.000000 on both sides,
which mean no problem (Am I right?).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>We changed <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>  mcast_req.member_rec.mgid.raw[12] = mac.addr[1];<br>
instead of<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>mcast_req.member_rec.mgid.raw[12] = 0;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>to avoid different IP to be mapped onto same mac.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Using igmpv3 is not recommended since IB join is always made
on 224.0.0.22, but not to actual mcast group (e.g. 239.0.0.2).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>In our tests we force the servers to use igmp v2.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Please check same test with igmp v2 on both sides.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Slava<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=3 width="100%" align=center tabIndex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Tzachi Dar
[mailto:tzachid@mellanox.co.il] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Monday, November 03, 2008
7:20 PM<br>
<b><span style='font-weight:bold'>To:</span></b> ofw@lists.openfabrics.org; <st1:PersonName
w:st="on">Slava Strebkov</st1:PersonName><br>
<b><span style='font-weight:bold'>Subject:</span></b> FW: Problem on multicast
flow</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Resending without the executables attached
(due to antivirus enforcement)</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Any one who wants the executables please
call me directly.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Thanks</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Tzachi</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=3 width="100%" align=center tabIndex=-1>

</span></font></div>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><font
size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Tzachi
Dar <br>
<b><span style='font-weight:bold'>Sent:</span></b> Monday, November 03, 2008
7:16 PM<br>
<b><span style='font-weight:bold'>To:</span></b> ofw@lists.openfabrics.org;
'slavas@voltaire.com'<br>
<b><span style='font-weight:bold'>Subject:</span></b> Problem on multicast flow</span></font><o:p></o:p></p>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hi Voltaire and anyone who can help !</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>On the last day we have been working on a problem of a
simple multicast test that doesn't work.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Test is attached at the end of the mail.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>This test has used to work in the past but not any more.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Looking at the current state of things, it seems that
changes that were done on chekin 1450</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>are the root of the problem.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>It seems that the mechanism that maps Mac addresses and ip
addresses into IB multicast was broken.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>This was done when ipoib_port_join_mcast has changed from:</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>  mcast_req.member_rec.mgid.raw[12] <font
color=red><span style='color:red'>= 0;//mac.addr[1];<br>
</span></font>  mcast_req.member_rec.mgid.raw[13] = mac.addr[3];<br>
  mcast_req.member_rec.mgid.raw[14] = mac.addr[4];<br>
  mcast_req.member_rec.mgid.raw[15] = mac.addr[5];</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>to <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>  mcast_req.member_rec.mgid.raw[12] = mac.addr[1];<br>
  mcast_req.member_rec.mgid.raw[13] = mac.addr[3];<br>
  mcast_req.member_rec.mgid.raw[14] = mac.addr[4];<br>
  mcast_req.member_rec.mgid.raw[15] = mac.addr[5];</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>It seems that now mac_addr[1] is not always 0 as it used to
be. Instead this data is being taken from the ip addresses.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>More than that, it seems that on the function
ipoib_refresh_mcast the lines </span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>   if ( ( p_mac_array[i].addr[0] == 1
&& p_mac_array[i].addr[1] == 0 && p_mac_array[i].addr[2] ==
0x5e &&<br>
       p_mac_array[i].addr[3] == 0 &&
p_mac_array[i].addr[4] == 0 && p_mac_array[i].addr[5] == 1 ) ||<br>
      !( p_mac_array[i].addr[0] == 1 &&
p_mac_array[i].addr[1] == 0 && p_mac_array[i].addr[2] == 0x5e )</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>that were added actually means that for normal multicast
addresses (starting with 01-00-5e) no multicast group will be created.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>The attached patch, fixes my specific test, but might cause
problems to other scenarios. It is not a fix, but rather trying to show the
problem more clearly.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>A few more interesting points:</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>1) IP multicast addresses are wider than Mac addresses. We
need to decide what encoding we want to use. see <a
href="http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/intwork/inaf_mul_wrfn.mspx?mfr=true">http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/intwork/inaf_mul_wrfn.mspx?mfr=true</a> for
example.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Please note that it might be that some ip multicast address
will have to share the same Mac addresses.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>2) On the same machine when running on Broadcom cards IGMP<font
color=red><span style='color:red'> v2</span></font> is used. On ipoib cards
IGMP <font color=red><span style='color:red'>v3</span></font> is used</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>To run the test:</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>reciver: mcastrcv.exe 11.4.12.85 19007 239.0.0.2 25 406 99</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>sender: mcastsnd.exe 11.4.12.86 19007 239.0.0.2 25 406 100</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Please replace the ip 11.4.12.85/6 with the local IPOIB
addreses.</span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Index: ipoib_adapter.c<br>
===================================================================<br>
--- ipoib_adapter.c (revision 3408)<br>
+++ ipoib_adapter.c (working copy)<br>
@@ -817,6 +817,18 @@<br>
  uint8_t    i, j;<br>
  ipoib_port_t  *p_port = NULL;<br>
 <br>
+    for (i=0; i< num_macs; i++) {<br>
+        DbgPrint("entry %d, mac =
%d-%d-%d-%d-%d-%d\n", i, <br>
+           
p_mac_array[i].addr[0],<br>
+           
p_mac_array[i].addr[1],<br>
+           
p_mac_array[i].addr[2],<br>
+           
p_mac_array[i].addr[3],<br>
+           
p_mac_array[i].addr[4],<br>
+           
p_mac_array[i].addr[5]<br>
+        );<br>
+    }<br>
+<br>
+<br>
  IPOIB_ENTER( IPOIB_DBG_MCAST );<br>
  cl_obj_lock( &p_adapter->obj );<br>
  if( p_adapter->state == IB_PNP_PORT_ACTIVE )<br>
@@ -859,11 +871,15 @@<br>
 <br>
    if( j != p_adapter->mcast_array_size )<br>
     continue;<br>
+/*<br>
    if ( ( p_mac_array[i].addr[0] == 1 &&
p_mac_array[i].addr[1] == 0 && p_mac_array[i].addr[2] == 0x5e
&&<br>
        p_mac_array[i].addr[3] == 0
&& p_mac_array[i].addr[4] == 0 && p_mac_array[i].addr[5] == 1 )
||<br>
       !( p_mac_array[i].addr[0] == 1 &&
p_mac_array[i].addr[1] == 0 && p_mac_array[i].addr[2] == 0x5e )<br>
-    )<br>
+    )*/<br>
+    <br>
    {<br>
+ IPOIB_PRINT( TRACE_LEVEL_ERROR,IPOIB_DBG_OID,("\n"));<br>
+   <br>
     ipoib_port_join_mcast( p_port, p_mac_array[i],
IB_MC_REC_STATE_FULL_MEMBER );<br>
    }<br>
   }<br>
@@ -877,6 +893,8 @@<br>
  if( p_port )<br>
   ipoib_port_deref( p_port, ref_refresh_mcast );<br>
 <br>
+DbgPrint("ipoib_refresh_mcast exiting\n");<br>
+<br>
  IPOIB_EXIT( IPOIB_DBG_MCAST );<br>
 }<br>
 <br>
@@ -1109,6 +1127,7 @@<br>
   /* Join all programmed multicast groups. */<br>
   for( i = 0; i < p_adapter->mcast_array_size; i++ )<br>
   {<br>
+   IPOIB_PRINT(
TRACE_LEVEL_ERROR,IPOIB_DBG_OID,("\n"));<br>
    ipoib_port_join_mcast(<br>
     p_adapter->p_port,
p_adapter->mcast_array[i] ,IB_MC_REC_STATE_FULL_MEMBER);<br>
   }<br>
Index: ipoib_driver.c<br>
===================================================================<br>
--- ipoib_driver.c (revision 3408)<br>
+++ ipoib_driver.c (working copy)<br>
@@ -1731,24 +1731,25 @@<br>
 <br>
  /* Required Ethernet operational characteristics */<br>
  case OID_802_3_MULTICAST_LIST:<br>
+       
DbgPrint("OID_802_3_MULTICAST_LIST called\n");<br>
   IPOIB_PRINT(TRACE_LEVEL_INFORMATION, IPOIB_DBG_OID,<br>
    ("Port %d received set for OID_802_3_MULTICAST_LIST\n",
port_num) );<br>
   if( info_buf_len > MAX_MCAST * sizeof(mac_addr_t) )<br>
   {<br>
-   IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,<br>
+   IPOIB_PRINT( TRACE_LEVEL_ERROR,IPOIB_DBG_OID,<br>
     ("Port %d OID_802_3_MULTICAST_LIST -
Multicast list full.\n", port_num) );<br>
    status = NDIS_STATUS_MULTICAST_FULL;<br>
    *p_bytes_needed = MAX_MCAST * sizeof(mac_addr_t);<br>
   }<br>
   else if( info_buf_len % sizeof(mac_addr_t) )<br>
   {<br>
-   IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,<br>
+   IPOIB_PRINT( TRACE_LEVEL_ERROR,IPOIB_DBG_OID,<br>
     ("Port %d OID_802_3_MULTICAST_LIST - Invalid
input buffer.\n", port_num) );<br>
    status = NDIS_STATUS_INVALID_DATA;<br>
   }<br>
   else if( !info_buf && info_buf_len )<br>
   {<br>
-   IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,<br>
+   IPOIB_PRINT( TRACE_LEVEL_ERROR,IPOIB_DBG_OID,<br>
     ("Port %d OID_802_3_MULTICAST_LIST - Invalid
input buffer.\n", port_num) );<br>
    status = NDIS_STATUS_INVALID_DATA;<br>
   }<br>
Index: ipoib_port.c<br>
===================================================================<br>
--- ipoib_port.c (revision 3411)<br>
+++ ipoib_port.c (working copy)<br>
@@ -3243,7 +3243,7 @@<br>
 <br>
  IPOIB_ENTER( IPOIB_DBG_SEND );<br>
 <br>
- IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_MCAST,<br>
+ IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_MCAST,<br>
     ("buf_len = %d,iph_options_size =
%d\n",(int)buf_len,(int)iph_options_size ) );<br>
 <br>
  if( !buf_len )<br>
@@ -3265,6 +3265,7 @@<br>
      ("Failed to query IGMPv2 header
buffer.\n") );<br>
     return NDIS_STATUS_FAILURE;<br>
    }<br>
+   CL_ASSERT(iph_options_size >= buf_len);<br>
    iph_options_size-=buf_len;<br>
   }<br>
         <br>
@@ -3312,8 +3313,10 @@<br>
    Change type of mcast endpt to SEND_RECV endpt. So mcast
garbage collector <br>
    will not delete this mcast endpt.<br>
   */<br>
-  IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_MCAST,<br>
-   ("Catched IGMP_V2_MEMBERSHIP_REPORT message\n") );<br>
+  IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_MCAST,<br>
+   ("Catched IGMP_V2_MEMBERSHIP_REPORT message fake_addr =
%d-%d-%d-%d-%d-%d\n",<br>
+   fake_mcast_mac.addr[0], fake_mcast_mac.addr[1],
fake_mcast_mac.addr[2],<br>
+   fake_mcast_mac.addr[3], fake_mcast_mac.addr[4],
fake_mcast_mac.addr[5]) );<br>
   endpt_status = __endpt_mgr_ref( p_port, fake_mcast_mac,
&p_endpt );<br>
   if ( p_endpt )<br>
   {<br>
@@ -3347,7 +3350,7 @@<br>
   break;<br>
 <br>
  default:<br>
-  IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_MCAST,<br>
+  IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_MCAST,<br>
         ("Send Unknown IGMP
message: 0x%x \n", p_igmp_v2_hdr->type ) );<br>
   break;<br>
  }<br>
@@ -3815,6 +3818,7 @@<br>
  if( status == NDIS_STATUS_NO_ROUTE_TO_DESTINATION &&<br>
   ETH_IS_MULTICAST( p_eth_hdr->dst.addr ) )<br>
  {<br>
+  IPOIB_PRINT( TRACE_LEVEL_ERROR,IPOIB_DBG_OID,("\n"));<br>
   if( ipoib_port_join_mcast( p_port, p_eth_hdr->dst, <br>
    IB_MC_REC_STATE_FULL_MEMBER) == IB_SUCCESS )<br>
   {<br>
@@ -4248,6 +4252,7 @@<br>
 <br>
    if( ETH_IS_MULTICAST( p_eth_hdr->dst.addr ) )<br>
    {<br>
+    IPOIB_PRINT(
TRACE_LEVEL_ERROR,IPOIB_DBG_OID,("\n"));<br>
     if( ipoib_port_join_mcast( p_port,
p_eth_hdr->dst,<br>
      IB_MC_REC_STATE_FULL_MEMBER) == IB_SUCCESS
)<br>
     {<br>
@@ -5894,6 +5899,12 @@<br>
 <br>
  IPOIB_ENTER( IPOIB_DBG_MCAST );<br>
 <br>
+ IPOIB_PRINT( TRACE_LEVEL_ERROR,IPOIB_DBG_OID,<br>
+  ("ipoib_port_join_mcast called MAC %d-%d-%d-%d-%d-%d
\n", <br>
+  mac.addr[0], mac.addr[1], mac.addr[2], <br>
+  mac.addr[3], mac.addr[4], mac.addr[5] ) );<br>
+<br>
+<br>
  switch( __endpt_mgr_ref( p_port, mac, &p_endpt ) )<br>
  {<br>
  case NDIS_STATUS_NO_ROUTE_TO_DESTINATION:<br>
@@ -5929,7 +5940,8 @@<br>
    * 24 lower bits of that network-byte-ordered value (assuming
MSb<br>
    * is zero) and 4 lsb bits of the first byte of IP address.<br>
    */<br>
-  mcast_req.member_rec.mgid.raw[12] = mac.addr[1];<br>
+CL_ASSERT(mac.addr[1] == 0 || mac.addr[1] == 128);<br>
+  mcast_req.member_rec.mgid.raw[12] = 0;//mac.addr[1];<br>
   mcast_req.member_rec.mgid.raw[13] = mac.addr[3];<br>
   mcast_req.member_rec.mgid.raw[14] = mac.addr[4];<br>
   mcast_req.member_rec.mgid.raw[15] = mac.addr[5];<o:p></o:p></span></font></p>

</div>

</blockquote>

</div>

</body>

</html>