<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2>Fab</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>al_smi.c assume 
that PERF class is always routing as local mad, so any get_resp mad will be 
rout to the HW and probaly will be dropped.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>I create patch that 
fix the problem but it only address the immediate problem of PERF class and I 
think we should review the handling of all the GMP mads</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>few comments: (some 
of them cosmetics, but willl help to understand the routing 
algorithm)</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>- There is no <FONT 
face="Times New Roman" size=3>reference </FONT>to the ADM and DM classes ( I 
guess that those classes always use the DISPATCH route but it will be more clear 
if we will write them at the switch)</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>- function 
route_recv_gmp should handle all GMP classes as her name state but actually it 
handle BM and VENDOR SPECIFIC</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>- on function 
route_recv_gmp the code assume that class_port_info should 
always route to the HW, but I dont think the SPEC require the HCA to answer 
all class port info.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>My suggestion is to 
have the AL query the low level driver which classes the HW support and only 
those classes should be forward down to the HW.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>all GMP packets 
should be pass through route_recv_gmp.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>Classes that not 
supported by HW (like DM ,BM and ADM ) should be rout as 
dispatch.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>Classes that do 
supported by HW should be routed according to the method (get/set to the HW 
get_resp dispatch.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>Attached is the 
patch I add to support PERF class.</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>We need to address 
at list the PERF class issue because our IBADM tools depends on that 
</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2>10x</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>Yossi 
</FONT></SPAN></DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=764143707-25072006><FONT face=Arial size=2>Index: 
al_smi.c<BR>===================================================================<BR>--- 
al_smi.c (revision 1541)<BR>+++ al_smi.c (working copy)<BR>@@ -2265,7 
+2265,17 
@@<BR>    break;<BR> <BR>   case 
IB_MCLASS_PERF:<BR>-   route = 
ROUTE_LOCAL;<BR>+   /* Process the received GMP. 
*/<BR>+   switch( p_mad_element->p_mad_buf->method 
)<BR>+   {<BR>+   case 
IB_MAD_METHOD_GET:<BR>+   case 
IB_MAD_METHOD_SET:<BR>+     route = 
ROUTE_LOCAL;<BR>+    break;<BR>+   default:<BR>+    route 

ROUTE_DISPATCHER;<BR>+    break;<BR>+   }<BR>    break;<BR> <BR>   case 
IB_MCLASS_BM:<BR></FONT></SPAN></DIV></BODY></HTML>