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:

committed by
David S. Miller

parent
7861552ced
commit
0a9fe5c375
@@ -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 {
|
||||
|
Reference in New Issue
Block a user