Print this page
NEX-3705 Need to update libses with LID/USN code from sesctld
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>

@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #include <scsi/libses.h>
 #include "ses_impl.h"
 

@@ -166,10 +167,16 @@
             libscsi_vendor(sp->ss_target->st_target));
         SES_NV_ADD(string, err, root->sn_props, SCSI_PROP_PRODUCT,
             libscsi_product(sp->ss_target->st_target));
         SES_NV_ADD(string, err, root->sn_props, SCSI_PROP_REVISION,
             libscsi_revision(sp->ss_target->st_target));
+        if (libscsi_usn(sp->ss_target->st_target) != NULL)
+                SES_NV_ADD(string, err, root->sn_props, SCSI_PROP_USN,
+                    libscsi_usn(sp->ss_target->st_target));
+        if (libscsi_lid(sp->ss_target->st_target) != NULL)
+                SES_NV_ADD(string, err, root->sn_props, SCSI_PROP_LID,
+                    libscsi_lid(sp->ss_target->st_target));
 
         for (eip = (ses2_ed_impl_t *)pip->scpi_data, i = 0;
             i < pip->scpi_n_subenclosures + 1;
             i++, eip = NEXT_ED(eip)) {
                 if (!SES_WITHIN_PAGE_STRUCT(eip, pp->ssp_page, pp->ssp_len))

@@ -208,10 +215,18 @@
                     pp->ssp_page, pp->ssp_len))
                         break;
 
                 if (enc_parse_ed(eip, np->sn_props) != 0)
                         return (-1);
+
+                if (libscsi_usn(sp->ss_target->st_target) != NULL)
+                        SES_NV_ADD(string, err, np->sn_props, SCSI_PROP_USN,
+                            libscsi_usn(sp->ss_target->st_target));
+
+                if (libscsi_lid(sp->ss_target->st_target) != NULL)
+                        SES_NV_ADD(string, err, np->sn_props, SCSI_PROP_LID,
+                            libscsi_lid(sp->ss_target->st_target));
         }
 
         if (root->sn_first_child == NULL)
                 return (ses_error(ESES_BAD_RESPONSE, "no enclosure "
                     "descriptors found"));