From 6123b21ec50bfcc4c520608ecaccbaaa3f8a3414 Mon Sep 17 00:00:00 2001 From: Francis Pravin Date: Thu, 20 Feb 2025 18:35:40 +0530 Subject: [PATCH] nvme-print: print Host Behavior Support feature fields Print the fields of Host Behavior Support feature (FID - 16h). NVM Express Base Specification 2.1 Signed-off-by: Francis Pravin --- nvme-print-json.c | 17 ++++++++++++++++- nvme-print-stdout.c | 8 ++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/nvme-print-json.c b/nvme-print-json.c index 821258c11a..cf265d68e0 100644 --- a/nvme-print-json.c +++ b/nvme-print-json.c @@ -3504,8 +3504,23 @@ static void json_feature_show_fields_lba_sts_interval(struct json_object *r, uns static void json_feature_show_fields_host_behavior(struct json_object *r, unsigned char *buf) { - if (buf) + if (buf) { + struct nvme_feat_host_behavior *host = (struct nvme_feat_host_behavior *)buf; + obj_add_str(r, "Host Behavior Support", buf[0] & 0x1 ? "True" : "False"); + obj_add_str(r, "Advanced Command Retry Enable (ACRE)", host->acre ? "True" : "False"); + obj_add_str(r, "Extended Telemetry Data Area 4 Supported (ETDAS)", host->etdas ? + "True" : "False"); + obj_add_str(r, "LBA Format Extension Enable (LBAFEE)", host->lbafee ? "True" : "False"); + obj_add_str(r, "Host Dispersed Namespace Support (HDISNS)", host->hdisns ? + "Enabled" : "Disabled"); + obj_add_str(r, "Copy Descriptor Format 2h Enable (CDF2E)", host->cdfe & (1 << 2) ? + "True" : "False"); + obj_add_str(r, "Copy Descriptor Format 3h Enable (CDF3E)", host->cdfe & (1 << 3) ? + "True" : "False"); + obj_add_str(r, "Copy Descriptor Format 4h Enable (CDF4E)", host->cdfe & (1 << 4) ? + "True" : "False"); + } } static void json_feature_show_fields_sanitize(struct json_object *r, unsigned int result) diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index 66308c653e..2c7cafded8 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -5020,10 +5020,14 @@ static void stdout_feature_show_fields(enum nvme_features_id fid, host_behavior->etdas ? "True" : "False"); printf("\tLBA Format Extension Enable (LBAFEE): %s\n", host_behavior->lbafee ? "True" : "False"); - printf("\tCopy Descriptor Format 2h Enabled (CDFE): %s\n", + printf("\tHost Dispersed Namespace Support (HDISNS) : %s\n", + host_behavior->hdisns ? "Enabled" : "Disabled"); + printf("\tCopy Descriptor Format 2h Enabled (CDF2E) : %s\n", host_behavior->cdfe & (1 << 2) ? "True" : "False"); - printf("\tCopy Descriptor Format 3h Enabled (CDFE): %s\n", + printf("\tCopy Descriptor Format 3h Enabled (CDF3E) : %s\n", host_behavior->cdfe & (1 << 3) ? "True" : "False"); + printf("\tCopy Descriptor Format 4h Enabled (CDF4E) : %s\n", + host_behavior->cdfe & (1 << 4) ? "True" : "False"); } break; case NVME_FEAT_FID_SANITIZE: