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 <[email protected]> --- 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

