From: "David E. Box" <david.e.box@linux.intel.com>
To: netdev@vger.kernel.org, ilpo.jarvinen@linux.intel.com,
david.e.box@linux.intel.com,
sathyanarayanan.kuppuswamy@linux.intel.com
Cc: linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org
Subject: [PATCH 8/8] tools: intel_sdsi: Add current meter support
Date: Wed, 31 Jan 2024 17:07:47 -0800 [thread overview]
Message-ID: <20240201010747.471141-9-david.e.box@linux.intel.com> (raw)
In-Reply-To: <20240201010747.471141-1-david.e.box@linux.intel.com>
Add support to read the 'meter_current' file. The display is the same as
the 'meter_certificate', but will show the current snapshot of the
counters.
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
tools/arch/x86/intel_sdsi/intel_sdsi.c | 48 +++++++++++++++++---------
1 file changed, 31 insertions(+), 17 deletions(-)
diff --git a/tools/arch/x86/intel_sdsi/intel_sdsi.c b/tools/arch/x86/intel_sdsi/intel_sdsi.c
index a8fb6d17405f..c9b3e457885d 100644
--- a/tools/arch/x86/intel_sdsi/intel_sdsi.c
+++ b/tools/arch/x86/intel_sdsi/intel_sdsi.c
@@ -182,6 +182,7 @@ struct sdsi_dev {
enum command {
CMD_SOCKET_INFO,
CMD_METER_CERT,
+ CMD_METER_CURRENT_CERT,
CMD_STATE_CERT,
CMD_PROV_AKC,
CMD_PROV_CAP,
@@ -329,7 +330,7 @@ static void get_feature(uint32_t encoding, char *feature)
feature[0] = name[3];
}
-static int sdsi_meter_cert_show(struct sdsi_dev *s)
+static int sdsi_meter_cert_show(struct sdsi_dev *s, bool show_current)
{
char buf[METER_CERT_MAX_SIZE] = {0};
struct bundle_encoding_counter *bec;
@@ -360,7 +361,11 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s)
return ret;
}
- cert_ptr = fopen("meter_certificate", "r");
+ if (!show_current)
+ cert_ptr = fopen("meter_certificate", "r");
+ else
+ cert_ptr = fopen("meter_current", "r");
+
if (!cert_ptr) {
perror("Could not open 'meter_certificate' file");
return -1;
@@ -368,7 +373,8 @@ static int sdsi_meter_cert_show(struct sdsi_dev *s)
size = fread(buf, 1, sizeof(buf), cert_ptr);
if (!size) {
- fprintf(stderr, "Could not read 'meter_certificate' file\n");
+ fprintf(stderr, "Could not read '%s' file\n",
+ show_current ? "meter_current" : "meter_certificate");
fclose(cert_ptr);
return -1;
}
@@ -734,7 +740,7 @@ static void sdsi_free_dev(struct sdsi_dev *s)
static void usage(char *prog)
{
- printf("Usage: %s [-l] [-d DEVNO [-i] [-s] [-m] [-a FILE] [-c FILE]]\n", prog);
+ printf("Usage: %s [-l] [-d DEVNO [-i] [-s] [-m | -C] [-a FILE] [-c FILE]\n", prog);
}
static void show_help(void)
@@ -743,8 +749,9 @@ static void show_help(void)
printf(" %-18s\t%s\n", "-l, --list", "list available On Demand devices");
printf(" %-18s\t%s\n", "-d, --devno DEVNO", "On Demand device number");
printf(" %-18s\t%s\n", "-i, --info", "show socket information");
- printf(" %-18s\t%s\n", "-s, --state", "show state certificate");
- printf(" %-18s\t%s\n", "-m, --meter", "show meter certificate");
+ printf(" %-18s\t%s\n", "-s, --state", "show state certificate data");
+ printf(" %-18s\t%s\n", "-m, --meter", "show meter certificate data");
+ printf(" %-18s\t%s\n", "-C, --meter_current", "show live unattested meter data");
printf(" %-18s\t%s\n", "-a, --akc FILE", "provision socket with AKC FILE");
printf(" %-18s\t%s\n", "-c, --cap FILE>", "provision socket with CAP FILE");
}
@@ -760,21 +767,22 @@ int main(int argc, char *argv[])
int option_index = 0;
static struct option long_options[] = {
- {"akc", required_argument, 0, 'a'},
- {"cap", required_argument, 0, 'c'},
- {"devno", required_argument, 0, 'd'},
- {"help", no_argument, 0, 'h'},
- {"info", no_argument, 0, 'i'},
- {"list", no_argument, 0, 'l'},
- {"meter", no_argument, 0, 'm'},
- {"state", no_argument, 0, 's'},
- {0, 0, 0, 0 }
+ {"akc", required_argument, 0, 'a'},
+ {"cap", required_argument, 0, 'c'},
+ {"devno", required_argument, 0, 'd'},
+ {"help", no_argument, 0, 'h'},
+ {"info", no_argument, 0, 'i'},
+ {"list", no_argument, 0, 'l'},
+ {"meter", no_argument, 0, 'm'},
+ {"meter_current", no_argument, 0, 'C'},
+ {"state", no_argument, 0, 's'},
+ {0, 0, 0, 0 }
};
progname = argv[0];
- while ((opt = getopt_long_only(argc, argv, "+a:c:d:hilms", long_options,
+ while ((opt = getopt_long_only(argc, argv, "+a:c:d:hilmCs", long_options,
&option_index)) != -1) {
switch (opt) {
case 'd':
@@ -790,6 +798,9 @@ int main(int argc, char *argv[])
case 'm':
command = CMD_METER_CERT;
break;
+ case 'C':
+ command = CMD_METER_CURRENT_CERT;
+ break;
case 's':
command = CMD_STATE_CERT;
break;
@@ -828,7 +839,10 @@ int main(int argc, char *argv[])
ret = sdsi_read_reg(s);
break;
case CMD_METER_CERT:
- ret = sdsi_meter_cert_show(s);
+ ret = sdsi_meter_cert_show(s, false);
+ break;
+ case CMD_METER_CURRENT_CERT:
+ ret = sdsi_meter_cert_show(s, true);
break;
case CMD_STATE_CERT:
ret = sdsi_state_cert_show(s);
--
2.34.1
next prev parent reply other threads:[~2024-02-01 1:07 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-01 1:07 [PATCH 0/8] Intel On Demand: Add netlink interface for SPDM attestation David E. Box
2024-02-01 1:07 ` [PATCH 1/8] platform/x86/intel/sdsi: Set message size during writes David E. Box
2024-02-01 16:49 ` Kuppuswamy Sathyanarayanan
2024-02-08 13:42 ` Ilpo Järvinen
2024-02-08 21:49 ` Kuppuswamy Sathyanarayanan
2024-02-01 1:07 ` [PATCH 2/8] platform/x86/intel/sdsi: Combine read and write mailbox flows David E. Box
2024-02-01 17:31 ` Kuppuswamy Sathyanarayanan
2024-02-01 18:11 ` David E. Box
2024-02-08 13:38 ` Ilpo Järvinen
2024-02-01 1:07 ` [PATCH 3/8] platform/x86/intel/sdsi: Add header file David E. Box
2024-02-08 13:41 ` Ilpo Järvinen
2024-02-08 21:52 ` Kuppuswamy Sathyanarayanan
2024-02-01 1:07 ` [PATCH 4/8] platform/x86/intel/sdsi: Add netlink SPDM transport David E. Box
2024-02-01 9:26 ` Jiri Pirko
2024-02-01 16:42 ` David E. Box
2024-02-01 18:00 ` Jiri Pirko
2024-02-01 1:07 ` [PATCH 5/8] platform/x86/intel/sdsi: Add in-band BIOS lock support David E. Box
2024-02-08 13:52 ` Ilpo Järvinen
2024-02-01 1:07 ` [PATCH 6/8] platform/x86/intel/sdsi: Add attribute to read the current meter state David E. Box
2024-02-08 14:43 ` Ilpo Järvinen
2024-02-01 1:07 ` [PATCH 7/8] tools: Fix errors in meter_certificate display David E. Box
2024-02-08 14:46 ` Ilpo Järvinen
2024-02-01 1:07 ` David E. Box [this message]
2024-02-08 14:52 ` [PATCH 8/8] tools: intel_sdsi: Add current meter support Ilpo Järvinen
2024-02-01 3:49 ` [PATCH 0/8] Intel On Demand: Add netlink interface for SPDM attestation Stephen Hemminger
2024-02-01 16:53 ` Kuppuswamy Sathyanarayanan
2024-02-02 1:42 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240201010747.471141-9-david.e.box@linux.intel.com \
--to=david.e.box@linux.intel.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).