<root
NETEM(8)                                      Linux                                      NETEM(8)

NAME
       NetEm - Network Emulator

SYNOPSIS
       tc qdisc ... dev DEVICE ] add netem OPTIONS

       OPTIONS := [ LIMIT ] [ DELAY ] [ LOSS ] [ CORRUPT ] [ DUPLICATION ] [ REORDERING ][ RATE ]

       LIMIT := limit packets

       DELAY := delay TIME [ JITTER [ CORRELATION ]]]
              [ distribution { uniform | normal | pareto |  paretonormal } ]

       LOSS := loss { random PERCENT [ CORRELATION ]  |
                      state p13 [ p31 [ p32 [ p23 [ p14]]]] |
                      gemodel p [ r [ 1-h [ 1-k ]]] }  [ ecn ]

       CORRUPT := corrupt PERCENT [ CORRELATION ]]

       DUPLICATION := duplicate PERCENT [ CORRELATION ]]

       REORDERING := reorder PERCENT [ CORRELATION ] [ gap DISTANCE ]

       RATE := rate RATE [ PACKETOVERHEAD [ CELLSIZE [ CELLOVERHEAD ]]]]

DESCRIPTION
       NetEm  is  an enhancement of the Linux traffic control facilities that allow to add delay,
       packet loss, duplication and  more  other  characteristics  to  packets  outgoing  from  a
       selected network interface. NetEm is built using the existing Quality Of Service (QOS) and
       Differentiated Services (diffserv) facilities in the Linux kernel.

netem OPTIONS
       netem has the following options:

   limit packets
       limits the effect of selected options to the indicated number of next packets.

   delay
       adds the chosen delay to the packets outgoing to chosen network  interface.  The  optional
       parameters allows to introduce a delay variation and a correlation.  Delay and jitter val‐
       ues are expressed in ms while correlation is percentage.

   distribution
       allow the user to choose the delay distribution. If not specified, the  default  distribu‐
       tion  is  Normal.  Additional parameters allow to consider situations in which network has
       variable delays depending on traffic flows concurring on the same path, that  causes  sev‐
       eral delay peaks and a tail.

   loss random
       adds  an  independent  loss  probability  to  the packets outgoing from the chosen network
       interface. It is also possible to add a correlation, but this option is now deprecated due
       to the noticed bad behavior.

   loss state
       adds  packet  losses according to the 4-state Markov using the transition probabilities as
       input parameters. The parameter p13 is mandatory and if  used  alone  corresponds  to  the
       Bernoulli  model.  The  optional  parameters  allows to extend the model to 2-state (p31),
       3-state (p23 and p32) and 4-state (p14).  State 1 corresponds to good reception,  State  4
       to  independent  losses,  State  3  to burst losses and State 2 to good reception within a
       burst.

   loss gemodel
       adds packet losses according to  the  Gilbert-Elliot  loss  model  or  its  special  cases
       (Gilbert,  Simple  Gilbert  and  Bernoulli).  To  use the Bernoulli model, the only needed
       parameter is p while the others will be set to the default values r=1-p, 1-h=1 and  1-k=0.
       The  parameters needed for the Simple Gilbert model are two (p and r), while three parame‐
       ters (p, r, 1-h) are needed for the Gilbert model and four (p, r, 1-h and 1-k) are  needed
       for  the  Gilbert-Elliot model. As known, p and r are the transition probabilities between
       the bad and the good states, 1-h is the loss probability in the bad state and 1-k  is  the
       loss probability in the good state.

   ecn
       can  be  used  optionally to mark packets instead of dropping them. A loss model has to be
       used for this to be enabled.

   corrupt
       allows the emulation of random noise introducing an error in a random position for a  cho‐
       sen percent of packets. It is also possible to add a correlation through the proper param‐
       eter.

   duplicate
       using this option the chosen percent of packets is duplicated before queuing them.  It  is
       also possible to add a correlation through the proper parameter.

   reorder
       to use reordering, a delay option must be specified. There are two ways to use this option
       (assuming 'delay 10ms' in the options list).

       reorder 25% 50% gap 5
       in this first example, the first 4 (gap - 1) packets are delayed by  10ms  and  subsequent
       packets  are  sent  immediately  with  a probability of 0.25 (with correlation of 50% ) or
       delayed with a probability of 0.75. After a packet is reordered, the process restarts i.e.
       the  next  4  packets  are  delayed and subsequent packets are sent immediately or delayed
       based on reordering probability. To cause a repeatable pattern where every 5th  packet  is
       reordered reliably, a reorder probability of 100% can be used.

       reorder 25% 50%
       in this second example 25% of packets are sent immediately (with correlation of 50%) while
       the others are delayed by 10 ms.

   rate
       delay packets based on packet size and is a replacement for TBF.  Rate can be specified in
       common  units  (e.g.  100kbit).  Optional  PACKETOVERHEAD (in bytes) specify an per packet
       overhead and can be negative. A positive value can be used  to  simulate  additional  link
       layer  headers. A negative value can be used to artificial strip the Ethernet header (e.g.
       -14) and/or simulate a link layer header compression scheme.  The  third  parameter  -  an
       unsigned  value  -  specify  the  cellsize.  Cellsize  can  be used to simulate link layer
       schemes. ATM for example has an payload cellsize of 48 bytes and 5 byte per  cell  header.
       If  a  packet is 50 byte then ATM must use two cells: 2 * 48 bytes payload including 2 * 5
       byte header, thus consume 106 byte on the wire. The last optional value  CELLOVERHEAD  can
       be  used  to specify per cell overhead - for our ATM example 5.  CELLOVERHEAD can be nega‐
       tive, but use negative values with caution.

       Note that rate throttling is limited by several  factors:  the  kernel  clock  granularity
       avoid  a  perfect  shaping  at a specific level. This will show up in an artificial packet
       compression (bursts). Another influence factor are network adapter buffers which can  also
       add artificial delay.

LIMITATIONS
       The  main known limitation of Netem are related to timer granularity, since Linux is not a
       real-time operating system.

EXAMPLES
       tc qdisc add dev eth0 root netem rate 5kbit 20 100 5
           delay all outgoing packets on device eth0 with a rate of 5kbit, a per packet  overhead
           of 20 byte, a cellsize of 100 byte and a per celloverhead of 5 byte:

SOURCES
        1. Hemminger S. , "Network Emulation with NetEm", Open Source Development Lab, April 2005
           (http://devresources.linux-foundation.org/shemminger/netem/LCA2005_paper.pdf)

        2. Netem page from Linux foundation, (http://www.linuxfoundation.org/en/Net:Netem)

        3. Salsano S., Ludovici F., Ordine A., "Definition of a general and intuitive loss  model
           for  packet  networks and its implementation in the Netem module in the Linux kernel",
           available at http://netgroup.uniroma2.it/NetemCLG

SEE ALSO
       tc(8), tc-tbf(8)

AUTHOR
       Netem was written by Stephen Hemminger at Linux foundation and is based on NISTnet.   This
       manpage  was  created  by  Fabio  Ludovici  and Hagen Paul
       Pfeifer 

iproute2                                 25 November 2011                                NETEM(8)

Go-to-top  




Designed by SanjuD(@ngineerbabu)