DPDK 25.03.0-rc0
Functions
rte_random.h File Reference
#include <stdint.h>

Go to the source code of this file.

Functions

void rte_srand (uint64_t seedval)
 
uint64_t rte_rand (void)
 
uint64_t rte_rand_max (uint64_t upper_bound)
 
double rte_drand (void)
 

Detailed Description

Pseudo-random Generators in RTE

Definition in file rte_random.h.

Function Documentation

◆ rte_srand()

void rte_srand ( uint64_t  seedval)

Seed the pseudo-random generator.

The generator is automatically seeded by the EAL init with a timer value. It may need to be re-seeded by the user with a real random value.

This function is not multi-thread safe in regards to other rte_srand() calls, nor is it in relation to concurrent rte_rand(), rte_rand_max() or rte_drand() calls.

Parameters
seedvalThe value of the seed.

◆ rte_rand()

uint64_t rte_rand ( void  )

Get a pseudo-random value.

The generator is not cryptographically secure.

rte_rand(), rte_rand_max() and rte_drand() are multi-thread safe, with the exception that they may not be called by multiple unregistered non-EAL threads in parallel.

Returns
A pseudo-random value between 0 and (1<<64)-1.
Examples
examples/fips_validation/main.c, and examples/ipsec-secgw/sa.c.

◆ rte_rand_max()

uint64_t rte_rand_max ( uint64_t  upper_bound)

Generates a pseudo-random number with an upper bound.

This function returns an uniformly distributed (unbiased) random number less than a user-specified maximum value.

rte_rand(), rte_rand_max() and rte_drand() are multi-thread safe, with the exception that they may not be called by multiple unregistered non-EAL threads in parallel.

Parameters
upper_boundThe upper bound of the generated number.
Returns
A pseudo-random value between 0 and (upper_bound-1).
Examples
examples/l2fwd-keepalive/main.c.

◆ rte_drand()

double rte_drand ( void  )

Generates a pseudo-random floating point number.

This function returns a non-negative double-precision floating random number uniformly distributed over the interval [0.0, 1.0).

The generator is not cryptographically secure.

rte_rand(), rte_rand_max() and rte_drand() are multi-thread safe, with the exception that they may not be called by multiple unregistered non-EAL threads in parallel.

Returns
A pseudo-random value between 0 and 1.0.