• Yousuk Seung's avatar
    netem: slotting with non-uniform distribution · 0a9fe5c3
    Yousuk Seung authored
    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: default avatarYousuk Seung <ysseung@google.com>
    Acked-by: default avatarEric Dumazet <edumazet@google.com>
    Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0a9fe5c3
sch_netem.c 30.2 KB