* [dpdk-dev] [PATCH] examples/l2fwd-crypto: add cryptodev mask option
@ 2017-04-18 11:34 Fan Zhang
2017-04-18 21:30 ` De Lara Guarch, Pablo
0 siblings, 1 reply; 3+ messages in thread
From: Fan Zhang @ 2017-04-18 11:34 UTC (permalink / raw)
To: dev; +Cc: pablo.de.lara.guarch
Previously, l2fwd-crypto application did not give user the
flexibility to decide which crypto device(s) will be used.
In this patch, a new cryptodev_mask option is added to the
application. Same as portmask, the cryptodev_mask avails the
user to mask out the unwanted crypto devices in the system.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
doc/guides/sample_app_ug/l2_forward_crypto.rst | 7 +++-
examples/l2fwd-crypto/main.c | 45 +++++++++++++++++++++++++-
2 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/doc/guides/sample_app_ug/l2_forward_crypto.rst b/doc/guides/sample_app_ug/l2_forward_crypto.rst
index b3fd873..d6df36b 100644
--- a/doc/guides/sample_app_ug/l2_forward_crypto.rst
+++ b/doc/guides/sample_app_ug/l2_forward_crypto.rst
@@ -89,7 +89,7 @@ The application requires a number of command line options:
[--cipher_key_random_size SIZE] [--iv IV] [--iv_random_size SIZE] /
[--auth_algo ALGO] [--auth_op GENERATE/VERIFY] [--auth_key KEY] /
[--auth_key_random_size SIZE] [--aad AAD] [--aad_random_size SIZE] /
- [--digest size SIZE] [--sessionless]
+ [--digest size SIZE] [--sessionless] [--cryptodev_mask MASK]
where,
@@ -157,6 +157,11 @@ where,
* sessionless: no crypto session will be created.
+* cryptodev_mask: A hexadecimal bitmask of the cryptodevs to be used by the
+ application.
+
+ (default is all cryptodevs).
+
The application requires that crypto devices capable of performing
the specified crypto operation are available on application initialization.
diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
index 6a3965b..0f9209d 100644
--- a/examples/l2fwd-crypto/main.c
+++ b/examples/l2fwd-crypto/main.c
@@ -167,6 +167,8 @@ struct l2fwd_crypto_options {
uint16_t block_size;
char string_type[MAX_STR_LEN];
+
+ uint64_t cryptodev_mask;
};
/** l2fwd crypto lcore params */
@@ -852,7 +854,8 @@ l2fwd_crypto_usage(const char *prgname)
" --aad_random_size SIZE: size of AAD when generated randomly\n"
" --digest_size SIZE: size of digest to be generated/verified\n"
- " --sessionless\n",
+ " --sessionless\n"
+ " --cdev_mask\n",
prgname);
}
@@ -996,6 +999,27 @@ parse_auth_op(enum rte_crypto_auth_operation *op, char *optarg)
return -1;
}
+static int
+parse_cryptodev_mask(struct l2fwd_crypto_options *options,
+ const char *q_arg)
+{
+ char *end = NULL;
+ uint64_t pm;
+
+ /* parse hexadecimal string */
+ pm = strtoul(q_arg, &end, 16);
+ if ((pm == '\0') || (end == NULL) || (*end != '\0'))
+ pm = 0;
+
+ options->cryptodev_mask = pm;
+ if (options->cryptodev_mask == 0) {
+ printf("invalid cryptodev_mask specified\n");
+ return -1;
+ }
+
+ return 0;
+}
+
/** Parse long options */
static int
l2fwd_crypto_parse_args_long_options(struct l2fwd_crypto_options *options,
@@ -1096,6 +1120,9 @@ l2fwd_crypto_parse_args_long_options(struct l2fwd_crypto_options *options,
return 0;
}
+ else if (strcmp(lgopts[option_index].name, "cryptodev_mask") == 0)
+ return parse_cryptodev_mask(options, optarg);
+
return -1;
}
@@ -1210,6 +1237,7 @@ l2fwd_crypto_default_options(struct l2fwd_crypto_options *options)
options->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
options->type = CDEV_TYPE_ANY;
+ options->cryptodev_mask = UINT64_MAX;
}
static void
@@ -1332,6 +1360,7 @@ l2fwd_crypto_parse_args(struct l2fwd_crypto_options *options,
{ "digest_size", required_argument, 0, 0 },
{ "sessionless", no_argument, 0, 0 },
+ { "cryptodev_mask", required_argument, 0, 0},
{ NULL, 0, 0, 0 }
};
@@ -1472,6 +1501,17 @@ check_type(struct l2fwd_crypto_options *options, struct rte_cryptodev_info *dev_
return -1;
}
+/* Check if the device is enabled by cryptodev_mask */
+static int
+check_cryptodev_mask(struct l2fwd_crypto_options *options,
+ uint8_t cdev_id)
+{
+ if (options->cryptodev_mask & (1 << cdev_id))
+ return 0;
+
+ return -1;
+}
+
static inline int
check_supported_size(uint16_t length, uint16_t min, uint16_t max,
uint16_t increment)
@@ -1526,6 +1566,9 @@ initialize_cryptodevs(struct l2fwd_crypto_options *options, unsigned nb_ports,
}
};
+ if (check_cryptodev_mask(options, (uint8_t)cdev_id))
+ continue;
+
rte_cryptodev_info_get(cdev_id, &dev_info);
/* Set cipher parameters */
--
2.7.4
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/l2fwd-crypto: add cryptodev mask option
2017-04-18 11:34 [dpdk-dev] [PATCH] examples/l2fwd-crypto: add cryptodev mask option Fan Zhang
@ 2017-04-18 21:30 ` De Lara Guarch, Pablo
2017-04-18 21:37 ` De Lara Guarch, Pablo
0 siblings, 1 reply; 3+ messages in thread
From: De Lara Guarch, Pablo @ 2017-04-18 21:30 UTC (permalink / raw)
To: Zhang, Roy Fan, dev
> -----Original Message-----
> From: Zhang, Roy Fan
> Sent: Tuesday, April 18, 2017 12:35 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo
> Subject: [PATCH] examples/l2fwd-crypto: add cryptodev mask option
>
> Previously, l2fwd-crypto application did not give user the
> flexibility to decide which crypto device(s) will be used.
>
> In this patch, a new cryptodev_mask option is added to the
> application. Same as portmask, the cryptodev_mask avails the
> user to mask out the unwanted crypto devices in the system.
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/l2fwd-crypto: add cryptodev mask option
2017-04-18 21:30 ` De Lara Guarch, Pablo
@ 2017-04-18 21:37 ` De Lara Guarch, Pablo
0 siblings, 0 replies; 3+ messages in thread
From: De Lara Guarch, Pablo @ 2017-04-18 21:37 UTC (permalink / raw)
To: De Lara Guarch, Pablo, Zhang, Roy Fan, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of De Lara Guarch,
> Pablo
> Sent: Tuesday, April 18, 2017 10:31 PM
> To: Zhang, Roy Fan; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] examples/l2fwd-crypto: add cryptodev
> mask option
>
>
>
> > -----Original Message-----
> > From: Zhang, Roy Fan
> > Sent: Tuesday, April 18, 2017 12:35 PM
> > To: dev@dpdk.org
> > Cc: De Lara Guarch, Pablo
> > Subject: [PATCH] examples/l2fwd-crypto: add cryptodev mask option
> >
> > Previously, l2fwd-crypto application did not give user the
> > flexibility to decide which crypto device(s) will be used.
> >
> > In this patch, a new cryptodev_mask option is added to the
> > application. Same as portmask, the cryptodev_mask avails the
> > user to mask out the unwanted crypto devices in the system.
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
>
> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Applied to dpdk-next-crypto.
Thanks,
Pablo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-04-18 21:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-18 11:34 [dpdk-dev] [PATCH] examples/l2fwd-crypto: add cryptodev mask option Fan Zhang
2017-04-18 21:30 ` De Lara Guarch, Pablo
2017-04-18 21:37 ` De Lara Guarch, Pablo
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).