netem: slotting with non-uniform distribution
Extend slotting with support for non-uniform distributions. This is
similar to netem's non-uniform distribution delay feature.
Commit f043efeae2f1 ("netem: support delivering packets in delayed
time slots") added the slotting feature to approximate the behaviors
of media with packet aggregation but only supported a uniform
distribution for delays between transmission attempts. Tests with TCP
BBR with emulated wifi links with non-uniform distributions produced
more useful results.
Syntax:
slot dist DISTRIBUTION DELAY JITTER [packets MAX_PACKETS] \
[bytes MAX_BYTES]
The syntax and use of the distribution table is the same as in the
non-uniform distribution delay feature. A file DISTRIBUTION must be
present in TC_LIB_DIR (e.g. /usr/lib/tc) containing numbers scaled by
NETEM_DIST_SCALE. A random value x is selected from the table and it
takes DELAY + ( x * JITTER ) as delay. Correlation between values is not
supported.
Examples:
Normal distribution delay with mean = 800us and stdev = 100us.
> tc qdisc add dev eth0 root netem slot dist normal 800us 100us
Optionally set the max slot size in bytes and/or packets.
> tc qdisc add dev eth0 root netem slot dist normal 800us 100us \
bytes 64k packets 42
Signed-off-by: Yousuk Seung <ysseung@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7861552ced
commit
0a9fe5c375
2 changed files with 52 additions and 24 deletions
|
|
@ -539,6 +539,7 @@ enum {
|
|||
TCA_NETEM_LATENCY64,
|
||||
TCA_NETEM_JITTER64,
|
||||
TCA_NETEM_SLOT,
|
||||
TCA_NETEM_SLOT_DIST,
|
||||
__TCA_NETEM_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -581,6 +582,8 @@ struct tc_netem_slot {
|
|||
__s64 max_delay;
|
||||
__s32 max_packets;
|
||||
__s32 max_bytes;
|
||||
__s64 dist_delay; /* nsec */
|
||||
__s64 dist_jitter; /* nsec */
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue