mad: Add RMPP support for DevMgt class

Signed-off-by: Hal Rosenstock <[EMAIL PROTECTED]>

Index: include/rdma/ib_mad.h
===================================================================
--- include/rdma/ib_mad.h       (revision 5874)
+++ include/rdma/ib_mad.h       (working copy)
@@ -117,6 +117,8 @@ enum {
        IB_MGMT_VENDOR_DATA = 216,
        IB_MGMT_SA_HDR = 56,
        IB_MGMT_SA_DATA = 200,
+       IB_MGMT_DM_HDR = 64,
+       IB_MGMT_DM_DATA = 192,
 };
 
 struct ib_mad_hdr {
Index: core/mad_rmpp.c
===================================================================
--- core/mad_rmpp.c     (revision 5874)
+++ core/mad_rmpp.c     (working copy)
@@ -104,6 +104,8 @@ static int data_offset(u8 mgmt_class)
 {
        if (mgmt_class == IB_MGMT_CLASS_SUBN_ADM)
                return IB_MGMT_SA_HDR;
+       else if (mgmt_class == IB_MGMT_CLASS_DEVICE_MGMT)
+               return IB_MGMT_DM_HDR;
        else if ((mgmt_class >= IB_MGMT_CLASS_VENDOR_RANGE2_START) &&
                 (mgmt_class <= IB_MGMT_CLASS_VENDOR_RANGE2_END))
                return IB_MGMT_VENDOR_HDR;
Index: core/user_mad.c
===================================================================
--- core/user_mad.c     (revision 5874)
+++ core/user_mad.c     (working copy)
@@ -181,6 +181,8 @@ static int data_offset(u8 mgmt_class)
 {
        if (mgmt_class == IB_MGMT_CLASS_SUBN_ADM)
                return IB_MGMT_SA_HDR;
+       else if (mgmt_class == IB_MGMT_CLASS_DEVICE_MGMT)
+               return IB_MGMT_DM_HDR;
        else if ((mgmt_class >= IB_MGMT_CLASS_VENDOR_RANGE2_START) &&
                 (mgmt_class <= IB_MGMT_CLASS_VENDOR_RANGE2_END))
                return IB_MGMT_VENDOR_HDR;
@@ -446,6 +448,11 @@ static ssize_t ib_umad_write(struct file
                copy_offset = IB_MGMT_RMPP_HDR;
                rmpp_active = ib_get_rmpp_flags(&rmpp_mad->rmpp_hdr) &
                              IB_MGMT_RMPP_FLAG_ACTIVE;
+       } else if (rmpp_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_DEVICE_MGMT) {
+               hdr_len = IB_MGMT_DM_HDR;
+               copy_offset = IB_MGMT_RMPP_HDR;
+               rmpp_active = ib_get_rmpp_flags(&rmpp_mad->rmpp_hdr) &
+                             IB_MGMT_RMPP_FLAG_ACTIVE;
        } else if (rmpp_mad->mad_hdr.mgmt_class >= 
IB_MGMT_CLASS_VENDOR_RANGE2_START &&
                   rmpp_mad->mad_hdr.mgmt_class <= 
IB_MGMT_CLASS_VENDOR_RANGE2_END) {
                hdr_len = IB_MGMT_VENDOR_HDR;



_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to