return FALSE;\r
}\r
}\r
+ if (ib_class_is_vendor_specific_high(p_mad_element->p_mad_buf->mgmt_class) &&\r
+ ib_rmpp_is_flag_set((ib_rmpp_mad_t *) p_mad_element->p_mad_buf,\r
+ IB_RMPP_FLAG_ACTIVE))\r
+ {\r
+ *p_rmpp_version = DEFAULT_RMPP_VERSION;\r
+ return TRUE;\r
+ }\r
\r
/* The RMPP is not active. */\r
return FALSE;\r
switch( mad_svc_type )\r
{\r
case IB_MAD_SVC_DEFAULT:\r
- /* Only subnet management receives require RMPP. */\r
- return( (p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM) &&\r
- ib_rmpp_is_flag_set( p_rmpp_mad, IB_RMPP_FLAG_ACTIVE ) );\r
+ return (p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM ||\r
+ ib_class_is_vendor_specific_high(p_rmpp_mad->common_hdr.mgmt_class)) &&\r
+ ib_rmpp_is_flag_set(p_rmpp_mad, IB_RMPP_FLAG_ACTIVE);\r
\r
case IB_MAD_SVC_RMPP:\r
return( ib_rmpp_is_flag_set( p_rmpp_mad, IB_RMPP_FLAG_ACTIVE ) );\r
{\r
case IB_MAD_SVC_DEFAULT:\r
/* Internal sends are non-RMPP data MADs. */\r
- return( (p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM) &&\r
- (p_rmpp_mad->rmpp_type &&\r
- (p_rmpp_mad->rmpp_type != IB_RMPP_TYPE_DATA) ) );\r
+ return ((p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM ||\r
+ ib_class_is_vendor_specific_high(p_rmpp_mad->common_hdr.mgmt_class)) &&\r
+ (p_rmpp_mad->rmpp_type && p_rmpp_mad->rmpp_type != IB_RMPP_TYPE_DATA));\r
\r
case IB_MAD_SVC_RMPP:\r
/* The RMPP header is present. Check its type. */\r