All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
To: <dev@dpdk.org>
Cc: Fan Zhang <roy.fan.zhang@intel.com>,
	Brian Dooley <brian.dooley@intel.com>, <lylavoie@iol.unh.edu>,
	Anoob Joseph <anoobj@marvell.com>,
	Archana Muniganti <marchana@marvell.com>,
	Jerin Jacob <jerinj@marvell.com>, Brandon Lo <blo@iol.unh.edu>
Subject: [v5, 05/11] examples/fips_validation: add json to gcm test
Date: Wed, 25 May 2022 21:15:36 +0530	[thread overview]
Message-ID: <6a471106e238da3dee5565dc85361ffa60917eac.1653491969.git.gmuthukrishn@marvell.com> (raw)
In-Reply-To: <cover.1653491969.git.gmuthukrishn@marvell.com>

From: Brandon Lo <blo@iol.unh.edu>

Adds json-specific testing and writeback function. Allows
the user to test AES-GCM vector sets.

Signed-off-by: Brandon Lo <blo@iol.unh.edu>
---
v3:
* fix checkpatch warnings
---
 examples/fips_validation/fips_validation.h    |   3 +
 .../fips_validation/fips_validation_gcm.c     | 151 +++++++++++++++++-
 examples/fips_validation/main.c               |   3 +-
 3 files changed, 155 insertions(+), 2 deletions(-)

diff --git a/examples/fips_validation/fips_validation.h b/examples/fips_validation/fips_validation.h
index a1c83a9a6a..8b9d528c53 100644
--- a/examples/fips_validation/fips_validation.h
+++ b/examples/fips_validation/fips_validation.h
@@ -250,6 +250,9 @@ fips_test_parse_one_json_group(void);
 
 int
 fips_test_parse_one_json_case(void);
+
+int
+parse_test_gcm_json_init(void);
 #endif /* RTE_HAS_JANSSON */
 
 int
diff --git a/examples/fips_validation/fips_validation_gcm.c b/examples/fips_validation/fips_validation_gcm.c
index 250d09bf90..3604b21f13 100644
--- a/examples/fips_validation/fips_validation_gcm.c
+++ b/examples/fips_validation/fips_validation_gcm.c
@@ -6,6 +6,10 @@
 #include <time.h>
 #include <stdio.h>
 
+#ifdef RTE_HAS_JANSSON
+#include <jansson.h>
+#endif /* RTE_HAS_JANSSON */
+
 #include <rte_cryptodev.h>
 #include <rte_malloc.h>
 
@@ -37,6 +41,27 @@
 #define OP_ENC_EXT_STR	"ExtIV"
 #define OP_ENC_INT_STR	"IntIV"
 
+#define KEYLEN_JSON_STR		"keyLen"
+#define IVLEN_JSON_STR		"ivLen"
+#define PAYLOADLEN_JSON_STR	"payloadLen"
+#define AADLEN_JSON_STR		"aadLen"
+#define TAGLEN_JSON_STR		"tagLen"
+
+#define KEY_JSON_STR	"key"
+#define IV_JSON_STR		"iv"
+#define PT_JSON_STR		"pt"
+#define CT_JSON_STR		"ct"
+#define AAD_JSON_STR	"aad"
+#define TAG_JSON_STR	"tag"
+#define DIR_JSON_STR	"direction"
+
+#define OP_ENC_JSON_STR	"encrypt"
+#define OP_DEC_JSON_STR	"decrypt"
+
+#define IVGEN_JSON_STR	"ivGen"
+#define OP_ENC_EXT_JSON_STR	"external"
+#define OP_ENC_INT_JSON_STR	"internal"
+
 #define NEG_TEST_STR	"FAIL"
 
 /**
@@ -136,6 +161,40 @@ struct fips_test_callback gcm_enc_vectors[] = {
 		{NULL, NULL, NULL} /**< end pointer */
 };
 
+#ifdef RTE_HAS_JANSSON
+struct fips_test_callback gcm_dec_json_vectors[] = {
+		{KEY_JSON_STR, parse_uint8_known_len_hex_str, &vec.aead.key},
+		{IV_JSON_STR, parse_uint8_known_len_hex_str, &vec.iv},
+		{CT_JSON_STR, parse_gcm_pt_ct_str, &vec.ct},
+		{AAD_JSON_STR, parse_gcm_aad_str, &vec.aead.aad},
+		{TAG_JSON_STR, parse_uint8_known_len_hex_str,
+				&vec.aead.digest},
+		{NULL, NULL, NULL} /**< end pointer */
+};
+
+struct fips_test_callback gcm_interim_json_vectors[] = {
+		{KEYLEN_JSON_STR, parser_read_uint32_bit_val, &vec.aead.key},
+		{IVLEN_JSON_STR, parser_read_uint32_bit_val, &vec.iv},
+		{PAYLOADLEN_JSON_STR, parser_read_gcm_pt_len, &vec.pt},
+		{PAYLOADLEN_JSON_STR, parser_read_uint32_bit_val, &vec.ct},
+		/**< The NIST json test vectors use 'payloadLen' to denote input text
+		 *  length in case of decrypt & encrypt operations.
+		 */
+		{AADLEN_JSON_STR, parser_read_uint32_bit_val, &vec.aead.aad},
+		{TAGLEN_JSON_STR, parser_read_uint32_bit_val,
+				&vec.aead.digest},
+		{NULL, NULL, NULL} /**< end pointer */
+};
+
+struct fips_test_callback gcm_enc_json_vectors[] = {
+		{KEY_JSON_STR, parse_uint8_known_len_hex_str, &vec.aead.key},
+		{IV_JSON_STR, parse_uint8_known_len_hex_str, &vec.iv},
+		{PT_JSON_STR, parse_gcm_pt_ct_str, &vec.pt},
+		{AAD_JSON_STR, parse_gcm_aad_str, &vec.aead.aad},
+		{NULL, NULL, NULL} /**< end pointer */
+};
+#endif /* RTE_HAS_JANSSON */
+
 static int
 parse_test_gcm_writeback(struct fips_val *val)
 {
@@ -194,7 +253,6 @@ parse_test_gcm_init(void)
 	char *tmp;
 	uint32_t i;
 
-
 	for (i = 0; i < info.nb_vec_lines; i++) {
 		char *line = info.vec[i];
 
@@ -218,3 +276,94 @@ parse_test_gcm_init(void)
 
 	return 0;
 }
+
+#ifdef RTE_HAS_JANSSON
+static int
+parse_test_gcm_json_writeback(struct fips_val *val)
+{
+	struct fips_val tmp_val;
+	json_t *tcId, *tag;
+
+	tcId = json_object_get(json_info.json_test_case, "tcId");
+
+	json_info.json_write_case = json_object();
+	json_object_set(json_info.json_write_case, "tcId", tcId);
+
+	if (info.op == FIPS_TEST_ENC_AUTH_GEN) {
+		json_t *ct;
+
+		tmp_val.val = val->val;
+		tmp_val.len = vec.pt.len;
+
+		writeback_hex_str("", info.one_line_text, &tmp_val);
+		ct = json_string(info.one_line_text);
+		json_object_set_new(json_info.json_write_case, CT_JSON_STR, ct);
+
+		if (info.interim_info.gcm_data.gen_iv) {
+			json_t *iv;
+			tmp_val.val = vec.iv.val;
+			tmp_val.len = vec.iv.len;
+
+			writeback_hex_str("", info.one_line_text, &tmp_val);
+			iv = json_string(info.one_line_text);
+			json_object_set_new(json_info.json_write_case, IV_JSON_STR, iv);
+
+			rte_free(vec.iv.val);
+			vec.iv.val = NULL;
+		}
+
+		tmp_val.val = val->val + vec.pt.len;
+		tmp_val.len = val->len - vec.pt.len;
+
+		writeback_hex_str("", info.one_line_text, &tmp_val);
+		tag = json_string(info.one_line_text);
+		json_object_set_new(json_info.json_write_case, TAG_JSON_STR, tag);
+	} else {
+		if (vec.status == RTE_CRYPTO_OP_STATUS_SUCCESS) {
+			if (!info.interim_info.gcm_data.is_gmac) {
+				tmp_val.val = val->val;
+				tmp_val.len = vec.pt.len;
+
+				writeback_hex_str("", info.one_line_text, &tmp_val);
+				json_object_set_new(json_info.json_write_case, PT_JSON_STR,
+					json_string(info.one_line_text));
+			}
+		} else {
+			json_object_set_new(json_info.json_write_case, "testPassed", json_false());
+		}
+	}
+
+	return 0;
+}
+
+int
+parse_test_gcm_json_init(void)
+{
+	json_t *direction_obj;
+	const char *direction_str;
+
+	direction_obj = json_object_get(json_info.json_test_group, DIR_JSON_STR);
+	direction_str = json_string_value(direction_obj);
+
+	if (strcmp(direction_str, OP_ENC_JSON_STR) == 0) {
+		json_t *ivGen_obj = json_object_get(json_info.json_test_group, IVGEN_JSON_STR);
+		const char *ivGen_str = json_string_value(ivGen_obj);
+
+		info.op = FIPS_TEST_ENC_AUTH_GEN;
+		info.callbacks = gcm_enc_json_vectors;
+
+		if (strcmp(ivGen_str, OP_ENC_INT_JSON_STR) == 0)
+			info.interim_info.gcm_data.gen_iv = 1;
+	} else if (strcmp(direction_str, OP_DEC_JSON_STR) == 0) {
+		info.op = FIPS_TEST_DEC_AUTH_VERIF;
+		info.callbacks = gcm_dec_json_vectors;
+	} else {
+		return -EINVAL;
+	}
+	info.interim_callbacks = gcm_interim_json_vectors;
+	info.parse_writeback = parse_test_gcm_json_writeback;
+
+	return 0;
+}
+#endif /* RTE_HAS_JANSSON */
+
diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
index 3d841e5bfd..6a1b323cc8 100644
--- a/examples/fips_validation/main.c
+++ b/examples/fips_validation/main.c
@@ -1940,11 +1940,12 @@ fips_test_one_test_group(void)
 
 	switch (info.algo) {
 	case FIPS_TEST_ALGO_AES_GCM:
-		ret = parse_test_gcm_init();
+		ret = parse_test_gcm_json_init();
 		break;
 	default:
 		return -EINVAL;
 	}
+
 	if (ret < 0)
 		return ret;
 
-- 
2.25.1


  parent reply	other threads:[~2022-05-25 15:46 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-27 14:51 [PATCH 0/5] Add JSON vector set support to fips validation Brandon Lo
2022-01-27 14:51 ` [PATCH 1/5] examples/fips_validation: add jansson dependency Brandon Lo
2022-01-27 14:51 ` [PATCH 2/5] examples/fips_validation: add json info to header Brandon Lo
2022-01-27 14:51 ` [PATCH 3/5] examples/fips_validation: add json parsing Brandon Lo
2022-01-27 14:51 ` [PATCH 4/5] examples/fips_validation: allow json file as input Brandon Lo
2022-01-27 14:51 ` [PATCH 5/5] examples/fips_validation: add json to gcm test Brandon Lo
2022-01-29 17:03 ` [PATCH v2 0/5] Add JSON vector set support to fips validation Brandon Lo
2022-01-29 17:03   ` [PATCH v2 1/5] examples/fips_validation: add jansson dependency Brandon Lo
2022-01-29 17:03   ` [PATCH v2 2/5] examples/fips_validation: add json info to header Brandon Lo
2022-01-29 17:03   ` [PATCH v2 3/5] examples/fips_validation: add json parsing Brandon Lo
2022-01-29 17:03   ` [PATCH v2 4/5] examples/fips_validation: allow json file as input Brandon Lo
2022-01-29 17:03   ` [PATCH v2 5/5] examples/fips_validation: add json to gcm test Brandon Lo
2022-01-29 17:55   ` [PATCH v3 0/5] Add JSON vector set support to fips validation Brandon Lo
2022-01-29 17:55     ` [PATCH v3 1/5] examples/fips_validation: add jansson dependency Brandon Lo
2022-01-29 17:55     ` [PATCH v3 2/5] examples/fips_validation: add json info to header Brandon Lo
2022-01-29 17:55     ` [PATCH v3 3/5] examples/fips_validation: add json parsing Brandon Lo
2022-01-29 17:55     ` [PATCH v3 4/5] examples/fips_validation: allow json file as input Brandon Lo
2022-01-29 17:55     ` [PATCH v3 5/5] examples/fips_validation: add json to gcm test Brandon Lo
2022-02-02 15:15     ` [PATCH v3 0/5] Add JSON vector set support to fips validation Brandon Lo
     [not found]       ` <MN2PR11MB382152E7C1DAFD68066264DEE62F9@MN2PR11MB3821.namprd11.prod.outlook.com>
     [not found]         ` <CAOeXdvZFkEUn-e2Reo3xg519qWpGq-UbYFhJqVeEMcXVxK7+YQ@mail.gmail.com>
     [not found]           ` <CAOeXdvZ4nBudX+bMdRASaLp=c955vUHi1Z-geUC6gFvE__2ozg@mail.gmail.com>
     [not found]             ` <CAOeXdvZbwW2tP-vyELRJza_imjjRm-JNYu+c4=-y2VtigqNg5A@mail.gmail.com>
2022-04-14 13:41               ` Brandon Lo
2022-04-21  8:02                 ` [EXT] " Gowrishankar Muthukrishnan
2022-04-26 14:30                   ` Brandon Lo
2022-02-08 21:48     ` [EXT] " Akhil Goyal
2022-04-29 16:15     ` [PATCH v4 0/8] " Brandon Lo
2022-04-29 16:15       ` [PATCH v4 1/8] examples/fips_validation: add jansson dependency Brandon Lo
2022-05-18 15:44         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 2/8] examples/fips_validation: add json info to header Brandon Lo
2022-05-18 15:44         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 3/8] examples/fips_validation: add json parsing Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 4/8] examples/fips_validation: allow json file as input Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-05-19  5:30         ` Gowrishankar Muthukrishnan
2022-05-19  9:12           ` Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 5/8] examples/fips_validation: add json to gcm test Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 6/8] examples/fips_validation: add json to hmac Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 7/8] examples/fips_validation: implement json cmac test Brandon Lo
2022-05-18 15:46         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 8/8] examples/fips_validation: add parsing for cmac Brandon Lo
2022-05-18 15:46         ` [EXT] " Gowrishankar Muthukrishnan
2022-05-19  5:31         ` Gowrishankar Muthukrishnan
2022-05-19  9:11           ` Gowrishankar Muthukrishnan
2022-04-29 16:19       ` [PATCH v4 0/8] Add JSON vector set support to fips validation Brandon Lo
2022-05-25 15:45       ` [v5, 00/11] " Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 01/11] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 02/11] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 03/11] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 04/11] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-25 15:45         ` Gowrishankar Muthukrishnan [this message]
2022-05-25 15:45         ` [v5, 06/11] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 07/11] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 08/11] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 09/11] examples/fips_validation: cleanup bypass tests in response file Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 10/11] examples/fips_validation: reset IV generation in every test group Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 11/11] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-25 17:08           ` [v5,11/11] " Gowrishankar Muthukrishnan
2022-05-25 17:13         ` [v6, 00/11] Add JSON vector set support to fips validation Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 01/11] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 02/11] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 03/11] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 04/11] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 05/11] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 06/11] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 07/11] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 08/11] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 09/11] examples/fips_validation: cleanup bypass tests in response file Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 10/11] examples/fips_validation: reset IV generation in every test group Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 11/11] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-26  6:46           ` [EXT] [v6, 00/11] Add JSON vector set support to fips validation Akhil Goyal
2022-05-26  8:02           ` [v7, " Gowrishankar Muthukrishnan
2022-05-26  8:02             ` [v7, 01/11] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-26  9:46               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 02/11] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-26  9:46               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 03/11] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-26  9:47               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 04/11] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-26  9:48               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 05/11] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-26  9:49               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 06/11] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-26  9:49               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 07/11] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-26  9:49               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 08/11] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-26  9:50               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 09/11] examples/fips_validation: cleanup bypass tests in response file Gowrishankar Muthukrishnan
2022-05-26  8:02             ` [v7, 10/11] examples/fips_validation: reset IV generation in every test group Gowrishankar Muthukrishnan
2022-05-26  8:02             ` [v7, 11/11] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-30 12:23             ` [v8, 00/10] Add JSON vector set support to fips validation Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 01/10] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 02/10] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 03/10] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 04/10] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 05/10] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 06/10] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 07/10] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 08/10] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 09/10] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 10/10] doc: add notes about acvp validation support Gowrishankar Muthukrishnan
2022-05-30 15:52               ` [v9, 00/10] Add JSON vector set support to fips validation Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 01/10] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 02/10] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 03/10] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 04/10] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 05/10] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 06/10] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 07/10] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 08/10] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 09/10] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 10/10] doc: add notes about acvp validation support Gowrishankar Muthukrishnan
2022-05-31 10:17                 ` [v9, 00/10] Add JSON vector set support to fips validation Poczatek, Jakub
2022-05-31 12:36                 ` Zhang, Roy Fan
2022-05-31 15:23                   ` Akhil Goyal
2022-06-07  9:48                     ` David Marchand
2022-06-13 11:58                       ` David Marchand
2022-06-21  7:28                         ` [EXT] " Gowrishankar Muthukrishnan
2022-06-21  7:36                           ` David Marchand
2022-06-21  7:40                             ` Akhil Goyal
2022-06-21  7:41                               ` David Marchand

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=6a471106e238da3dee5565dc85361ffa60917eac.1653491969.git.gmuthukrishn@marvell.com \
    --to=gmuthukrishn@marvell.com \
    --cc=anoobj@marvell.com \
    --cc=blo@iol.unh.edu \
    --cc=brian.dooley@intel.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=lylavoie@iol.unh.edu \
    --cc=marchana@marvell.com \
    --cc=roy.fan.zhang@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.