<!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.5659" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=570522418-10122008>While experimenting 
with the APIs in opensm/libvendor, I was unable to get the path record queries 
to work. Reviewing the error logs from the SM, I discovered that the APIs were 
not setting the required num_path field. Here's the fix:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=570522418-10122008>--- 
osm_vendor_ibumad_sa.bak    2008-12-10 13:21:22.000000000 
-0500<BR>+++ osm_vendor_ibumad_sa.c      2008-12-10 
13:24:42.000000000 -0500<BR>@@ -615,7 +615,7 
@@<BR>                
sa_mad_data.attr_offset 
=<BR>                    
ib_get_attr_offset(sizeof(ib_path_rec_t));<BR>                
sa_mad_data.comp_mask 
=<BR>-                   
(IB_PR_COMPMASK_DGID | 
IB_PR_COMPMASK_SGID);<BR>+                   
(IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | 
IB_PR_COMPMASK_NUMBPATH);<BR>                
sa_mad_data.p_attr = 
&path_rec;<BR>                
ib_gid_set_default(&path_rec.dgid,<BR>                                   
((osmv_guid_pair_t *) (p_query_req-><BR>@@ -625,6 +625,7 
@@<BR>                                   
((osmv_guid_pair_t *) 
(p_query_req-><BR>                                                          
p_query_input))-><BR>                                   
src_guid);<BR>+               
path_rec.num_path = 
1;<BR>                
break;</SPAN></FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008>        case 
OSMV_QUERY_PATH_REC_BY_GIDS:<BR>@@ -634,7 +635,7 
@@<BR>                
sa_mad_data.attr_offset 
=<BR>                    
ib_get_attr_offset(sizeof(ib_path_rec_t));<BR>                
sa_mad_data.comp_mask 
=<BR>-                   
(IB_PR_COMPMASK_DGID | 
IB_PR_COMPMASK_SGID);<BR>+                   
(IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | 
IB_PR_COMPMASK_NUMBPATH);<BR>                
sa_mad_data.p_attr = 
&path_rec;<BR>                
memcpy(&path_rec.dgid,<BR>                       
&((osmv_gid_pair_t *) (p_query_req->p_query_input))-><BR>@@ -642,6 
+643,7 
@@<BR>                
memcpy(&path_rec.sgid,<BR>                       
&((osmv_gid_pair_t *) 
(p_query_req->p_query_input))-><BR>                       
src_gid, 
sizeof(ib_gid_t));<BR>+               
path_rec.num_path = 
1;<BR>                
break;</SPAN></FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008>        case 
OSMV_QUERY_PATH_REC_BY_LIDS:<BR>@@ -652,13 +654,14 
@@<BR>                
sa_mad_data.attr_offset 
=<BR>                    
ib_get_attr_offset(sizeof(ib_path_rec_t));<BR>                
sa_mad_data.comp_mask 
=<BR>-                   
(IB_PR_COMPMASK_DLID | 
IB_PR_COMPMASK_SLID);<BR>+                   
(IB_PR_COMPMASK_DLID | IB_PR_COMPMASK_SLID | 
IB_PR_COMPMASK_NUMBPATH);<BR>                
sa_mad_data.p_attr = 
&path_rec;<BR>                
path_rec.dlid 
=<BR>                    
((osmv_lid_pair_t *) 
(p_query_req->p_query_input))-><BR>                    
dest_lid;<BR>                
path_rec.slid 
=<BR>                    
((osmv_lid_pair_t *) 
(p_query_req->p_query_input))->src_lid;<BR>+               
path_rec.num_path = 
1;<BR>                
break;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008>        case 
OSMV_QUERY_UD_MULTICAST_SET:<BR></SPAN></FONT><FONT face=Arial size=2><SPAN 
class=570522418-10122008>--- 
osm_vendor_mlx_sa.bak       2008-12-10 
13:21:10.000000000 -0500<BR>+++ osm_vendor_mlx_sa.c 2008-12-10 
13:24:07.000000000 -0500<BR>@@ -743,7 +743,7 
@@<BR>                
sa_mad_data.attr_offset 
=<BR>                    
ib_get_attr_offset(sizeof(ib_path_rec_t));<BR>                
sa_mad_data.comp_mask 
=<BR>-                   
(IB_PR_COMPMASK_DGID | 
IB_PR_COMPMASK_SGID);<BR>+                   
(IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | 
IB_PR_COMPMASK_NUMBPATH);<BR>                
sa_mad_data.p_attr = 
&path_rec;<BR>                
ib_gid_set_default(&path_rec.dgid,<BR>                                   
((osmv_guid_pair_t *) (p_query_req-><BR>@@ -753,6 +753,7 
@@<BR>                                   
((osmv_guid_pair_t *) 
(p_query_req-><BR>                                                          
p_query_input))-><BR>                                   
src_guid);<BR>+               
path_rec.num_path = 
1;<BR>                
break;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008>        case 
OSMV_QUERY_PATH_REC_BY_GIDS:<BR>@@ -763,7 +764,7 
@@<BR>                
sa_mad_data.attr_offset 
=<BR>                    
ib_get_attr_offset(sizeof(ib_path_rec_t));<BR>                
sa_mad_data.comp_mask 
=<BR>-                   
(IB_PR_COMPMASK_DGID | 
IB_PR_COMPMASK_SGID);<BR>+                   
(IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | 
IB_PR_COMPMASK_NUMBPATH);<BR>                
sa_mad_data.p_attr = 
&path_rec;<BR>                
memcpy(&path_rec.dgid,<BR>                       
&((osmv_gid_pair_t *) (p_query_req->p_query_input))-><BR>@@ -771,6 
+772,7 
@@<BR>                
memcpy(&path_rec.sgid,<BR>                       
&((osmv_gid_pair_t *) 
(p_query_req->p_query_input))-><BR>                       
src_gid, 
sizeof(ib_gid_t));<BR>+               
path_rec.num_path = 
1;<BR>                
break;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008>        case 
OSMV_QUERY_PATH_REC_BY_LIDS:<BR>@@ -789,6 +791,7 
@@<BR>                    
dest_lid;<BR>                
path_rec.slid 
=<BR>                    
((osmv_lid_pair_t *) 
(p_query_req->p_query_input))->src_lid;<BR>+               
path_rec.num_path = 
1;<BR>                
break;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=570522418-10122008>        case 
OSMV_QUERY_UD_MULTICAST_SET:<BR></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2>--</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>Michael Heinz</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>Principal Engineer, Qlogic 
Corporation</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>King of Prussia, 
Pennsylvania</FONT></DIV>
<DIV><SPAN class=570522418-10122008><FONT face=Arial 
size=2> </FONT></SPAN></DIV></BODY></HTML>