[ofw] [PATCH 3/4] MAD: apply RMPP with the upper vendor mgmt class
Sean Hefty
sean.hefty at intel.com
Fri May 8 11:22:50 PDT 2009
The upper range of the vendor management class uses the RMPP header by default.
Signed-off-by: Sean Hefty <sean.hefty at intel.com>
---
diff -up -r -X \mshefty\scm\winof\trunk\docs\dontdiff.txt -I '\$Id:' trunk\core\al/al_mad.c branches\winverbs\core\al/al_mad.c
--- trunk\core\al/al_mad.c 2009-01-26 09:34:31.125875000 -0800
+++ branches\winverbs\core\al/al_mad.c 2009-05-07 10:27:30.082632500 -0700
@@ -1616,6 +1580,13 @@ __does_send_req_rmpp(
return FALSE;
}
}
+ if (ib_class_is_vendor_specific_high(p_mad_element->p_mad_buf->mgmt_class) &&
+ ib_rmpp_is_flag_set((ib_rmpp_mad_t *) p_mad_element->p_mad_buf,
+ IB_RMPP_FLAG_ACTIVE))
+ {
+ *p_rmpp_version = DEFAULT_RMPP_VERSION;
+ return TRUE;
+ }
/* The RMPP is not active. */
return FALSE;
@@ -2336,9 +2304,9 @@ __recv_requires_rmpp(
switch( mad_svc_type )
{
case IB_MAD_SVC_DEFAULT:
- /* Only subnet management receives require RMPP. */
- return( (p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM) &&
- ib_rmpp_is_flag_set( p_rmpp_mad, IB_RMPP_FLAG_ACTIVE ) );
+ return (p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM ||
+ ib_class_is_vendor_specific_high(p_rmpp_mad->common_hdr.mgmt_class)) &&
+ ib_rmpp_is_flag_set(p_rmpp_mad, IB_RMPP_FLAG_ACTIVE);
case IB_MAD_SVC_RMPP:
return( ib_rmpp_is_flag_set( p_rmpp_mad, IB_RMPP_FLAG_ACTIVE ) );
@@ -2367,9 +2335,9 @@ __is_internal_send(
{
case IB_MAD_SVC_DEFAULT:
/* Internal sends are non-RMPP data MADs. */
- return( (p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM) &&
- (p_rmpp_mad->rmpp_type &&
- (p_rmpp_mad->rmpp_type != IB_RMPP_TYPE_DATA) ) );
+ return ((p_rmpp_mad->common_hdr.mgmt_class == IB_MCLASS_SUBN_ADM ||
+ ib_class_is_vendor_specific_high(p_rmpp_mad->common_hdr.mgmt_class)) &&
+ (p_rmpp_mad->rmpp_type && p_rmpp_mad->rmpp_type != IB_RMPP_TYPE_DATA));
case IB_MAD_SVC_RMPP:
/* The RMPP header is present. Check its type. */
More information about the ofw
mailing list