<!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>