diff options
| author | Stephen Hemminger <stephen@networkplumber.org> | 2026-04-18 06:19:39 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-04-28 03:30:27 +0300 |
| commit | 732b463449fd0ef90acd13cda68eab1c91adb00c (patch) | |
| tree | d6ac95e39093062e09bc5cbfbf5b2e45858e0855 /include/linux/timerqueue.h | |
| parent | 35eaa6d8d6c2ee65e96f507add856e0eacf24591 (diff) | |
| download | linux-732b463449fd0ef90acd13cda68eab1c91adb00c.tar.xz | |
net/sched: netem: fix probability gaps in 4-state loss model
The 4-state Markov chain in loss_4state() has gaps at the boundaries
between transition probability ranges. The comparisons use:
if (rnd < a4)
else if (a4 < rnd && rnd < a1 + a4)
When rnd equals a boundary value exactly, neither branch matches and
no state transition occurs. The redundant lower-bound check (a4 < rnd)
is already implied by being in the else branch.
Remove the unnecessary lower-bound comparisons so the ranges are
contiguous and every random value produces a transition, matching
the GI (General and Intuitive) loss model specification.
This bug goes back to original implementation of this model.
Fixes: 661b79725fea ("netem: revised correlated loss generator")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260418032027.900913-2-stephen@networkplumber.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions
