Messages in this thread | | | From | Francois Michel <> | Subject | [PATCH net-next 0/3] netem: allow using seeded PRNG for loss and corruption events | Date | Mon, 14 Aug 2023 04:31:37 +0200 |
| |
From: François Michel <francois.michel@uclouvain.be>
In order to reproduce bugs or performance evaluation of network protocols and applications, it is useful to have reproducible test suites and tools. This patch adds a way to specify a PRNG seed for generating netem loss and corruption events. Initializing the qdisc with the same seed leads to the exact same loss and corruption patterns. If no seed is specified, the qdisc adopts the classical behaviour, i.e. using the unseeded get_random_u32() for generating these events.
This patch can be and has been tested using tc from the following iproute2-next fork: git@github.com:francoismichel/iproute2-next.git
For instance, setting the seed 42424242 on the loopback with a loss rate of 10% will systematically drop the 5th, 12th and 24th packet when sending 25 packets.
François Michel (3): netem: add prng attribute to netem_sched_data netem: allow using a seeded PRNG for generating random losses netem: allow using seeded PRNG for correlated loss events
include/uapi/linux/pkt_sched.h | 1 + net/sched/sch_netem.c | 62 ++++++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 15 deletions(-)
base-commit: f614a29d6ca6962139b0eb36b985e3dda80258a6 -- 2.41.0
| |