1
0
Fork 0

Merging upstream version 1.2.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 10:05:45 +01:00
parent de317aafca
commit a2fa71affa
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
762 changed files with 7536 additions and 1096 deletions

View file

@ -17,20 +17,49 @@ License for the specific language governing permissions and limitations
under the License.
'''
import sys
import pprint
from libnvme import nvme
def disc_supp_str(dlp_supp_opts):
d = {
nvme.NVMF_LOG_DISC_LID_EXTDLPES: "Extended Discovery Log Page Entry Supported (EXTDLPES)",
nvme.NVMF_LOG_DISC_LID_PLEOS: "Port Local Entries Only Supported (PLEOS)",
nvme.NVMF_LOG_DISC_LID_ALLSUBES: "All NVM Subsystem Entries Supported (ALLSUBES)",
}
return [txt for msk, txt in d.items() if dlp_supp_opts & msk]
r = nvme.root()
h = nvme.host(r)
c = nvme.ctrl(nvme.NVME_DISC_SUBSYS_NAME, 'loop')
c = nvme.ctrl(r, nvme.NVME_DISC_SUBSYS_NAME, 'loop')
try:
c.connect(h)
except:
sys.exit("Failed to connect!")
except Exception as e:
sys.exit(f'Failed to connect: {e}')
print("connected to %s subsys %s" % (c.name, c.subsystem.name))
slp = c.supported_log_pages()
try:
dlp_supp_opts = slp[nvme.NVME_LOG_LID_DISCOVER] >> 16
except (TypeError, IndexError):
dlp_supp_opts = 0
print(f"LID {nvme.NVME_LOG_LID_DISCOVER}h (Discovery), supports: {disc_supp_str(dlp_supp_opts)}")
try:
lsp = nvme.NVMF_LOG_DISC_LSP_PLEO if dlp_supp_opts & nvme.NVMF_LOG_DISC_LID_PLEOS else 0
d = c.discover(lsp=lsp)
print(pprint.pformat(d))
except Exception as e:
sys.exit(f'Failed to discover: {e}')
try:
d = c.discover()
print (d)
except:
print("Failed to discover!")
pass
c.disconnect()
except Exception as e:
sys.exit(f'Failed to disconnect: {e}')
c = None
h = None
r = None