SES-3 element index handling incorrect
libses was written for SES-2, but new enclosures supporting SES-3 are appearing on the market.
One of the main changes is that SES-3 introduces new handling for the ELEMENT INDEX (and also CONNECTOR ELEMENT INDEX and OTHER ELEMENT INDEX, but we don't use those from what I can tell) when they appear in the Additional Element Status Descriptor. Essentially, two new bits (Element Index Includes Overall Elements, or EIIOE) appear in the status descriptor for these elements, and when present (and the EIP, or Element Index Present bit is true) they change the way elements are counted (i.e. the meaning of the ELEMENT INDEX).
Specifically, if the value of these two bits is one, then the count must include all of the elements.
Without this change, libses gets confused, and puts the wrong additional status descriptor on elements. This leads to a confused topology, as sestopo and fmtopo use the port descriptors (specifically the SAS WWNs) to determine which drives are located in which bays.
I believe that some SES-2-ish devices have also behaved this way -- for example certain enclosures released in the last year or two from HP (not HPE) and HGST.. (Note that SES-3 was only recently ratified however!)
We've been able to test a fix (which I will submit for this bug) with both SES-3 and SES-2 devices from vendors like HPE and HGST.
Updated by Electric Monk about 3 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
commit 3fa8bc2d19bd24fbc2061549c236b6f7573471e8 Author: Garrett D'Amore <firstname.lastname@example.org> Date: 2019-07-07T17:44:02.000Z 11325 SES-3 element index handling incorrect Reviewed by: Andrew Stormont <email@example.com> Reviewed by: Maxim Khitrov <firstname.lastname@example.org> Reviewed by: David Lethe <email@example.com> Reviewed by: Toomas Soome <firstname.lastname@example.org> Approved by: Gordon Ross <email@example.com>