]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/blobdiff - man/man8/tc-netem.8
netem: Fix 'reorder' section of man page
[lisovros/iproute2_canprio.git] / man / man8 / tc-netem.8
index 873608e7666966c3b73285cc75c6562e5168e964..39f8454993bdb9ccab0af314c997c6e14ba7ab85 100644 (file)
@@ -3,12 +3,12 @@
 NetEm \- Network Emulator
 .SH SYNOPSIS
 .B "tc qdisc ... dev" 
-.IR dev " ] "
+.IR DEVICE " ] "
 .BR "add netem" 
 .I OPTIONS
 
 .IR OPTIONS " := [ " LIMIT " ] [ " DELAY " ] [ " LOSS \
-" ] [ " CORRUPT " ] [ " DUPLICATION " ] [ " REORDERING " ]"
+" ] [ " CORRUPT " ] [ " DUPLICATION " ] [ " REORDERING " ][ " RATE " ]"
 
 .IR LIMIT " := "
 .B limit
@@ -41,17 +41,22 @@ NetEm \- Network Emulator
 .B duplicate
 .IR PERCENT " [ " CORRELATION " ]]"
 
-.IR REODERING " := "
+.IR REORDERING " := "
 .B reorder
 .IR PERCENT " [ " CORRELATION " ] [ "
 .B gap 
 .IR DISTANCE " ]"
 
+.IR RATE " := "
+.B rate
+.IR RATE " [ " PACKETOVERHEAD " [ " CELLSIZE " [ " CELLOVERHEAD " ]]]]"
+       
+
 .SH 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 build using the existing Quality Of Service (QOS)
+interface. NetEm is built using the existing Quality Of Service (QOS)
 and Differentiated Services (diffserv) facilities in the Linux
 kernel.
 
@@ -68,19 +73,19 @@ optional parameters allows to introduce a delay variation and a correlation.
 Delay and jitter values are expressed in ms while correlation is percentage.
 
 .SS distribution
-allow the choose the delay distribution. If not specified, the default
-distribution is normal. Additional parameters allow to consider situations in
+allow the user to choose the delay distribution. If not specified, the default
+distribution 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 severeal delay peaks and a tail.
+same path, that causes several delay peaks and a tail.
 
 .SS loss random
 adds an independent loss probability to the packets outgoing from the chosen
-network interface. It is also possibile to add a correlation, but this option
-is now deprecated due to the noticed bad behaviour.
+network interface. It is also possible to add a correlation, but this option
+is now deprecated due to the noticed bad behavior.
 
 .SS loss state
 adds packet losses according to the 4-state Markov using the transition
-probabilities as input parameters. The parameters p13 is mandatory and if used
+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
@@ -89,7 +94,7 @@ to burst losses and State 2 to good reception within a burst.
 .SS 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 the others will be set to the default
+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 parameters (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
@@ -98,33 +103,73 @@ the good states, 1-h is the loss probability in the bad state and 1-k is the
 loss probability in the good state.
 
 .SS corrupt
-allows the emulate the random noise introducing an error in a random position
+allows the emulation of random noise introducing an error in a random position
 for a chosen percent of packets. It is also possible to add a correlation
 through the proper parameter.
 
 .SS duplicate
-using this option the chosen percent of packets is duplicated before queueing
+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.
 
 .SS reorder
-there are two ways to use this option:
+to use reordering, a delay option must be specified. There are two ways to use
+this option (assuming 'delay 10ms' in the options list).
 
-.B "reorder gap"
-.I 5 10
+.B "reorder "
+.I 25% 50%
+.B "gap"
+.I 5
 .br
-in this first example every 5th (10th, 15th) packet is sent immediately while
-other packets are delayed by 10 ms
+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.
 
 .B reorder
 .I 25% 50%
 .br
 in this second example 25% of packets are sent immediately (with correlation of
-50%) while the other are delayed by 10 ms.
+50%) while the others are delayed by 10 ms.
+
+.SS rate
+delay packets based on packet size and is a replacement for 
+.IR TBF .
+Rate can be
+specified in common units (e.g. 100kbit). Optional 
+.I 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
+.I CELLOVERHEAD 
+can be used to specify per cell overhead - for our ATM example 5.
+.I CELLOVERHEAD
+can be negative, 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.
 
 .SH LIMITATIONS
 The main known limitation of Netem are related to timer granularity, since
 Linux is not a real-time operating system.
 
+.SH EXAMPLES
+.PP
+tc qdisc add dev eth0 root netem rate 5kbit 20 100 5
+.RS 4
+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:
+.RE
+
 .SH SOURCES
 .IP " 1. " 4
 Hemminger S. , "Network Emulation with NetEm", Open Source Development Lab,