Skip to content

Commit 68c072d

Browse files
sc108-leeigaw
authored andcommitted
ocp: TCG Configuration Log field added ocp v2.6
Add Number of Namespace Provisioned Locking Objects Extended(TCGL-23) remove reserved area prints (Shall be cleared to zero) reserved area field name modified by byte address remove 0x from rsvd area stdout print (aligned with json) 0x%d prints wrong way to print, so follow json print logic Signed-off-by: Steven Seungcheol Lee <[email protected]>
1 parent 22948ef commit 68c072d

File tree

3 files changed

+58
-39
lines changed

3 files changed

+58
-39
lines changed

plugins/ocp/ocp-nvme.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#if !defined(OCP_NVME) || defined(CMD_HEADER_MULTI_READ)
1212
#define OCP_NVME
1313

14-
#define OCP_PLUGIN_VERSION "2.9.2"
14+
#define OCP_PLUGIN_VERSION "2.9.3"
1515
#include "cmd.h"
1616

1717
PLUGIN(NAME("ocp", "OCP cloud SSD extensions", OCP_PLUGIN_VERSION),
@@ -196,7 +196,7 @@ struct __packed ocp_device_capabilities_log_page {
196196
/*
197197
* struct tcg_configuration_log - TCG Configuration Log Page Structure
198198
* @state: state
199-
* @rsvd1: Reserved1
199+
* @rsvd1: Reserved
200200
* @locking_sp_act_count: Locking SP Activation Count
201201
* @type_rev_count: Tper Revert Count
202202
* @locking_sp_rev_count: Locking SP Revert Count.
@@ -208,13 +208,14 @@ struct __packed ocp_device_capabilities_log_page {
208208
* @no_of_write_lock_locking_obj: Number of Write Locked Locking Objects
209209
* @no_of_read_unlock_locking_obj: Number of Read Unlocked Locking Objects
210210
* @no_of_read_unlock_locking_obj: Number of Write Unlocked Locking Objects
211-
* @rsvd2: Reserved2
211+
* @rsvd15: Reserved
212212
* @sid_auth_try_count: SID Authentication Try Count
213213
* @sid_auth_try_limit: SID Authentication Try Limit
214214
* @pro_tcg_rc: Programmatic TCG Reset Count
215215
* @pro_rlc: Programmatic Reset Lock Count
216216
* @tcg_ec: TCG Error Count
217-
* @rsvd3: Reserved3
217+
* @no_of_ns_prov_locking_obj_ext: Number of Namespace Provisioned Locking Objects Extended
218+
* @rsvd38: Reserved
218219
* @log_page_version: Log Page Version
219220
*/
220221
struct __packed tcg_configuration_log {
@@ -231,13 +232,14 @@ struct __packed tcg_configuration_log {
231232
__u8 no_of_write_lock_locking_obj;
232233
__u8 no_of_read_unlock_locking_obj;
233234
__u8 no_of_write_unlock_locking_obj;
234-
__u8 rsvd2;
235+
__u8 rsvd15;
235236
__le32 sid_auth_try_count;
236237
__le32 sid_auth_try_limit;
237238
__le32 pro_tcg_rc;
238239
__le32 pro_rlc;
239240
__le32 tcg_ec;
240-
__u8 rsvd3[458];
241+
__le16 no_of_ns_prov_locking_obj_ext;
242+
__u8 rsvd38[456];
241243
__le16 log_page_version;
242244
__u8 log_page_guid[GUID_LEN];
243245

plugins/ocp/ocp-print-json.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,7 @@ static void json_c7_log(struct nvme_dev *dev, struct tcg_configuration_log *log_
806806
char *guid = guid_buf;
807807
char res_arr[458];
808808
char *res = res_arr;
809+
__u16 log_page_version = le16_to_cpu(log_data->log_page_version);
809810

810811
root = json_create_object();
811812

@@ -834,7 +835,7 @@ static void json_c7_log(struct nvme_dev *dev, struct tcg_configuration_log *log_
834835
log_data->no_of_read_unlock_locking_obj);
835836
json_object_add_value_int(root, "Number of Write Unlocked Locking Objects",
836837
log_data->no_of_write_unlock_locking_obj);
837-
json_object_add_value_int(root, "Reserved2", log_data->rsvd2);
838+
json_object_add_value_int(root, "Reserved2", log_data->rsvd15);
838839

839840
json_object_add_value_int(root, "SID Authentication Try Count",
840841
le32_to_cpu(log_data->sid_auth_try_count));
@@ -847,12 +848,20 @@ static void json_c7_log(struct nvme_dev *dev, struct tcg_configuration_log *log_
847848
json_object_add_value_int(root, "TCG Error Count", le32_to_cpu(log_data->tcg_ec));
848849

849850
memset((__u8 *)res, 0, 458);
850-
for (j = 0; j < 458; j++)
851-
res += sprintf(res, "%d", log_data->rsvd3[j]);
851+
if (log_page_version == 1) {
852+
res += sprintf(res, "%d%d", *(__u8 *)&log_data->no_of_ns_prov_locking_obj_ext,
853+
*((__u8 *)&log_data->no_of_ns_prov_locking_obj_ext + 1));
854+
} else {
855+
json_object_add_value_int(root,
856+
"Number of Namespace Provisioned Locking Objects Extended",
857+
log_data->no_of_ns_prov_locking_obj_ext);
858+
}
859+
860+
for (j = 0; j < 456; j++)
861+
res += sprintf(res, "%d", log_data->rsvd38[j]);
852862
json_object_add_value_string(root, "Reserved3", res_arr);
853863

854-
json_object_add_value_int(root, "Log Page Version",
855-
le16_to_cpu(log_data->log_page_version));
864+
json_object_add_value_int(root, "Log Page Version", log_page_version);
856865

857866
memset((void *)guid, 0, GUID_LEN);
858867
for (j = GUID_LEN - 1; j >= 0; j--)

plugins/ocp/ocp-print-stdout.c

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -646,59 +646,67 @@ static void stdout_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_d
646646
static void stdout_c7_log(struct nvme_dev *dev, struct tcg_configuration_log *log_data)
647647
{
648648
int j;
649+
__u16 log_page_version = le16_to_cpu(log_data->log_page_version);
649650

650651
printf("TCG Configuration C7 Log Page Data-\n");
651652

652-
printf(" State : 0x%x\n",
653-
log_data->state);
654-
printf(" Reserved1 : 0x");
653+
printf(" State : 0x%x\n",
654+
log_data->state);
655+
printf(" Reserved1 : ");
655656
for (j = 0; j < 3; j++)
656657
printf("%d", log_data->rsvd1[j]);
657658
printf("\n");
658-
printf(" Locking SP Activation Count : 0x%x\n",
659+
printf(" Locking SP Activation Count : 0x%x\n",
659660
log_data->locking_sp_act_count);
660-
printf(" Tper Revert Count : 0x%x\n",
661+
printf(" Tper Revert Count : 0x%x\n",
661662
log_data->type_rev_count);
662-
printf(" Locking SP Revert Count : 0x%x\n",
663+
printf(" Locking SP Revert Count : 0x%x\n",
663664
log_data->locking_sp_rev_count);
664-
printf(" Number of Locking Objects : 0x%x\n",
665+
printf(" Number of Locking Objects : 0x%x\n",
665666
log_data->no_of_locking_obj);
666-
printf(" Number of Single User Mode Locking Objects : 0x%x\n",
667+
printf(" Number of Single User Mode Locking Objects : 0x%x\n",
667668
log_data->no_of_single_um_locking_obj);
668-
printf(" Number of Range Provisioned Locking Objects : 0x%x\n",
669+
printf(" Number of Range Provisioned Locking Objects : 0x%x\n",
669670
log_data->no_of_range_prov_locking_obj);
670-
printf(" Number of Namespace Provisioned Locking Objects : 0x%x\n",
671+
printf(" Number of Namespace Provisioned Locking Objects : 0x%x\n",
671672
log_data->no_of_ns_prov_locking_obj);
672-
printf(" Number of Read Locked Locking Objects : 0x%x\n",
673+
printf(" Number of Read Locked Locking Objects : 0x%x\n",
673674
log_data->no_of_read_lock_locking_obj);
674-
printf(" Number of Write Locked Locking Objects : 0x%x\n",
675+
printf(" Number of Write Locked Locking Objects : 0x%x\n",
675676
log_data->no_of_write_lock_locking_obj);
676-
printf(" Number of Read Unlocked Locking Objects : 0x%x\n",
677+
printf(" Number of Read Unlocked Locking Objects : 0x%x\n",
677678
log_data->no_of_read_unlock_locking_obj);
678-
printf(" Number of Write Unlocked Locking Objects : 0x%x\n",
679+
printf(" Number of Write Unlocked Locking Objects : 0x%x\n",
679680
log_data->no_of_write_unlock_locking_obj);
680-
printf(" Reserved2 : 0x%x\n",
681-
log_data->rsvd2);
682-
683-
printf(" SID Authentication Try Count : 0x%x\n",
681+
printf(" Reserved2 : %x\n",
682+
log_data->rsvd15);
683+
printf(" SID Authentication Try Count : 0x%x\n",
684684
le32_to_cpu(log_data->sid_auth_try_count));
685-
printf(" SID Authentication Try Limit : 0x%x\n",
685+
printf(" SID Authentication Try Limit : 0x%x\n",
686686
le32_to_cpu(log_data->sid_auth_try_limit));
687-
printf(" Programmatic TCG Reset Count : 0x%x\n",
687+
printf(" Programmatic TCG Reset Count : 0x%x\n",
688688
le32_to_cpu(log_data->pro_tcg_rc));
689-
printf(" Programmatic Reset Lock Count : 0x%x\n",
689+
printf(" Programmatic Reset Lock Count : 0x%x\n",
690690
le32_to_cpu(log_data->pro_rlc));
691-
printf(" TCG Error Count : 0x%x\n",
691+
printf(" TCG Error Count : 0x%x\n",
692692
le32_to_cpu(log_data->tcg_ec));
693693

694-
printf(" Reserved3 : 0x");
695-
for (j = 0; j < 458; j++)
696-
printf("%d", log_data->rsvd3[j]);
694+
if (log_page_version == 1) {
695+
printf(" Reserved3 : %d%d",
696+
*(__u8 *)&log_data->no_of_ns_prov_locking_obj_ext,
697+
*((__u8 *)&log_data->no_of_ns_prov_locking_obj_ext + 1));
698+
} else {
699+
printf(" Number of Namespace Provisioned Locking Objects Extended : 0x%x\n",
700+
le16_to_cpu(log_data->no_of_ns_prov_locking_obj_ext));
701+
printf(" Reserved3 : ");
702+
}
703+
for (j = 0; j < 456; j++)
704+
printf("%d", log_data->rsvd38[j]);
697705
printf("\n");
698706

699-
printf(" Log Page Version : 0x%x\n",
700-
le16_to_cpu(log_data->log_page_version));
701-
printf(" Log page GUID : 0x");
707+
printf(" Log Page Version : 0x%x\n",
708+
log_page_version);
709+
printf(" Log page GUID : 0x");
702710
for (j = GUID_LEN - 1; j >= 0; j--)
703711
printf("%02x", log_data->log_page_guid[j]);
704712
printf("\n");

0 commit comments

Comments
 (0)