[RFC] eal: allow setting random number generator seed
Marat Khalili
marat.khalili at huawei.com
Mon Sep 14 11:05:37 CEST 2026
> -----Original Message-----
> From: Stephen Hemminger <stephen at networkplumber.org>
> Sent: Friday 11 September 2026 23:59
> To: dev at dpdk.org
> Cc: Stephen Hemminger <stephen at networkplumber.org>; Mattias Rönnblom <mattias.ronnblom at ericsson.com>
> Subject: [RFC] eal: allow setting random number generator seed
>
> Many performance tests use rte_rand() and the random number
> can perturb the results. Add an ability to overide the automatic
> random seed on DPDK startup.
>
> This is not a security problem since rte_rand() is documented
> as not being cryptographically secure.
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> lib/eal/common/rte_random.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/lib/eal/common/rte_random.c b/lib/eal/common/rte_random.c
> index 576a32a46c..cdad60049b 100644
> --- a/lib/eal/common/rte_random.c
> +++ b/lib/eal/common/rte_random.c
> @@ -247,7 +247,18 @@ eal_rand_init(void)
>
> RTE_LCORE_VAR_ALLOC(rand_state);
>
> - seed = __rte_random_initial_seed();
> + const char *env = getenv("DPDK_RANDOM_SEED");
> + if (env != NULL && *env != '\0') {
> + char *end;
> +
> + errno = 0;
> + seed = strtoull(env, &end, 0);
> + if (errno != 0 || *end != '\0')
> + rte_exit(EXIT_FAILURE,
> + "invalid DPDK_RANDOM_SEED: %s\n", env);
> + } else {
> + seed = __rte_random_initial_seed();
> + }
>
> rte_srand(seed);
> }
> --
> 2.53.0
Lgtm, although as a minor nit `env` is maybe not the best name here.
Regardless,
Acked-by: Marat Khalili <marat.khalili at huawei.com>
More information about the dev
mailing list