( p_smp->dr_dlid >= p_spl_qp_svc->base_lid +\r
( 1 << p_spl_qp_svc->lmc ) ) )\r
{\r
- route = ROUTE_DISCARD;\r
+ route = ROUTE_DISCARD;\r
}\r
}\r
\r
break;\r
\r
case IB_MCLASS_PERF:\r
- route = ROUTE_LOCAL;\r
+ /* Process the received GMP. */\r
+ switch( p_mad_element->p_mad_buf->method )\r
+ {\r
+ case IB_MAD_METHOD_GET:\r
+ case IB_MAD_METHOD_SET:\r
+ route = ROUTE_LOCAL;\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
break;\r
\r
case IB_MCLASS_BM:\r
route = route_recv_gmp( p_mad_element );\r
break;\r
\r
+ case IB_MCLASS_SUBN_ADM:\r
+ case IB_MCLASS_DEV_MGMT:\r
+ case IB_MCLASS_COMM_MGMT:\r
+ case IB_MCLASS_SNMP:\r
+ break;\r
+\r
default:\r
/* Route vendor specific MADs to the HCA provider. */\r
if( ib_class_is_vendor_specific(\r
}\r
\r
/* Route the MAD. */\r
- if ( is_discard( route ) )\r
+ if( is_discard( route ) )\r
status = IB_ERROR;\r
else if( is_dispatcher( route ) )\r
status = mad_disp_recv_done( p_spl_qp_svc->h_mad_disp, p_mad_element );\r