[RFC] eal: allow setting random number generator seed

Morten Brørup mb at smartsharesystems.com
Sat Sep 12 08:26:54 CEST 2026


> From: Stephen Hemminger [mailto:stephen at networkplumber.org]
> Sent: Saturday, 12 September 2026 00.59
> 
> 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

Might be useful.
Reviewed-by: Morten Brørup <mb at smartsharesystems.com>



More information about the dev mailing list