Allow driver configuration via environment variables as a fallback when devargs are not provided. After processing devargs (or when devargs are absent), check DRIVER_STRICT_ORDER and DRIVER_DUMP_MODE environment variables to set en_loose_ordered and dpaa2_sec_dp_dump.
This lets users configure the driver without modifying EAL arguments, useful in environments where command-line access is restricted. Signed-off-by: Gagandeep Singh <[email protected]> --- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 27 ++++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 0e4e67aa07..c54960820c 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -4379,25 +4379,44 @@ check_devargs_handler(const char *key, const char *value, static void dpaa2_sec_get_devargs(struct rte_cryptodev *cryptodev, const char *key) { + struct dpaa2_sec_dev_private *internals; struct rte_kvargs *kvlist; struct rte_devargs *devargs; + int ret; + char *env; + + internals = cryptodev->data->dev_private; devargs = cryptodev->device->devargs; if (!devargs) - return; + goto env_set; kvlist = rte_kvargs_parse(devargs->args, NULL); if (!kvlist) - return; + goto env_set; if (!rte_kvargs_count(kvlist, key)) { rte_kvargs_free(kvlist); - return; + goto env_set; } - rte_kvargs_process(kvlist, key, + ret = rte_kvargs_process(kvlist, key, check_devargs_handler, (void *)cryptodev); rte_kvargs_free(kvlist); + if (!ret) + return; + +env_set: + env = getenv(DRIVER_STRICT_ORDER); + if (env) + internals->en_loose_ordered = !atoi(env); + + env = getenv(DRIVER_DUMP_MODE); + if (env) { + dpaa2_sec_dp_dump = atoi(env); + if (dpaa2_sec_dp_dump > DPAA2_SEC_DP_FULL_DUMP) + dpaa2_sec_dp_dump = DPAA2_SEC_DP_FULL_DUMP; + } } static int -- 2.25.1

