mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2026-01-26 22:32:50 +00:00
netem: fix man page
Format man page with conventional style (BNF and italics) to make it match other pages. Fix loss model options to match what will implemented!
This commit is contained in:
parent
1b1177ed5f
commit
fd6fac34e9
@ -2,90 +2,49 @@
|
||||
.SH NAME
|
||||
NetEm \- Network Emulator
|
||||
.SH SYNOPSIS
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ limit
|
||||
packets
|
||||
.B ]
|
||||
.B "tc qdisc ... dev"
|
||||
.IR dev " ] "
|
||||
.BR "add netem"
|
||||
.I OPTIONS
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ logging
|
||||
LEVEL ]
|
||||
.B ]
|
||||
.IR OPTIONS " := [ " LIMIT " ] [ " DELAY " ] [ " LOSS \
|
||||
" ] [ " CORRUPT " ] [ " DUPLICATION " ] [ " REORDERING " ]"
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ delay
|
||||
TIME [ JITTER [CORRELATION]]]
|
||||
.B ]
|
||||
.IR LIMIT " := "
|
||||
.B limit
|
||||
.I packets
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ distribution
|
||||
{uniform|normal|pareto|paretonormal} ]
|
||||
.B ]
|
||||
.IR DELAY " := "
|
||||
.BI delay
|
||||
.IR TIME " [ " JITTER " [ " CORRELATION " ]]]"
|
||||
.br
|
||||
[
|
||||
.BR distribution " { "uniform " | " normal " | " pareto " | " paretonormal " } ]"
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ drop
|
||||
PERCENT [CORRELATION]]
|
||||
.B ]
|
||||
.IR LOSS " := "
|
||||
.BR loss " { "
|
||||
.BI random
|
||||
.IR PERCENT " [ " CORRELATION " ] |"
|
||||
.br
|
||||
.RB " " state
|
||||
.IR p13 " [ " p31 " [ " p32 " [ " p23 " [ " p14 "]]]] |"
|
||||
.br
|
||||
.RB " " gemodel
|
||||
.IR p " [ " r " [ " 1-h " [ " 1-k " ]]]"
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ loss
|
||||
PERCENT [CORRELATION]]
|
||||
.B ]
|
||||
.IR CORRUPT " := "
|
||||
.B corrupt
|
||||
.IR PERCENT " [ " CORRELATION " ]]"
|
||||
|
||||
.IR DUPLICATION " := "
|
||||
.B duplicate
|
||||
.IR PERCENT " [ " CORRELATION " ]]"
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ query ] [ loss_GI
|
||||
ploss [burst_length [density [pisol [good_burst_length]]]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ query ] [ loss_4state
|
||||
[p13 [p31 [p32 [p23 [p14]]]]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ loss_gilb_ell
|
||||
p [r [1-h [1-k]]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ loss_gilb_ell_4s
|
||||
p [r [1-h [1-k]]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ loss_pattern
|
||||
FILENAME [REPETITIONS]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ corrupt
|
||||
PERCENT [CORRELATION]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ duplicate
|
||||
PERCENT [CORRELATION]]
|
||||
.B ]
|
||||
|
||||
.B tc qdisc ... dev
|
||||
dev
|
||||
.B ] add netem [ reorder
|
||||
PRECENT [CORRELATION] [ gap DISTANCE ]]
|
||||
.B ]
|
||||
.IR REODERING " := "
|
||||
.B reorder
|
||||
.IR PERCENT " [ " CORRELATION " ] [ "
|
||||
.B gap
|
||||
.IR DISTANCE " ]"
|
||||
|
||||
.SH DESCRIPTION
|
||||
NetEm is an enhancement of the Linux traffic control facilities
|
||||
@ -98,76 +57,27 @@ kernel.
|
||||
.SH netem OPTIONS
|
||||
netem has the following options:
|
||||
|
||||
.B limit
|
||||
packets
|
||||
.SS limit packets
|
||||
|
||||
limits the effect of selected options to the indicated number of next packets.
|
||||
|
||||
.B logging
|
||||
LEVEL
|
||||
|
||||
sets a logging level. Actually it works with loss_GI, loss_4state, loss_bern,
|
||||
loss_gilb, loss_gilb_ell, loss_gilb_ell_4s, loss_pattern options. The default
|
||||
value is level 0, which means that no data will be logged. When logging level
|
||||
is set to 1 the kernel logs will include a line like "netem loss event
|
||||
algorithm [type] x RFPLE y" for each loss event. The acronym RFPLE means
|
||||
"Received From Previous Loss Event" and it counts the number y of good packets
|
||||
received between two loss events while x is the number of all lost packets and
|
||||
algorithm refers to the selected loss generation algorithm (4-state, gilb_ell
|
||||
or deterministic). The type label applies only to the GI algorithm and can be
|
||||
burst or isolated.
|
||||
|
||||
.B delay
|
||||
TIME [ JITTER [CORRELATION]]]
|
||||
|
||||
.SS 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 values are expressed in ms while correlation is percentage.
|
||||
|
||||
.B distribution
|
||||
{uniform|normal|pareto|paretonormal}
|
||||
|
||||
.SS distribution
|
||||
allow the 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.
|
||||
|
||||
.B drop
|
||||
PERCENT [CORRELATION]
|
||||
|
||||
OR
|
||||
|
||||
.B loss
|
||||
PERCENT [CORRELATION]
|
||||
|
||||
.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.
|
||||
|
||||
.B query
|
||||
|
||||
enables the query mode. It applies to loss_GI and loss_4state options. If it is
|
||||
used with the loss_GI option, the transition probabilities which correspond to
|
||||
the input intuitive parameters are calculated and printed to screen, without
|
||||
copying them in the netem qdisc. Similarly, if it is used with the loss_4state
|
||||
option, it calculates and prints the intuitive parameters that corresponds to
|
||||
the input transition probabilities.
|
||||
|
||||
.B loss_GI
|
||||
ploss [burst_length [density [pisol [good_burst_length]]]]
|
||||
|
||||
adds packet losses according to the GI (General and Intuitive) loss model,
|
||||
using the intuitive parameters. The parameter ploss is mandatory while the
|
||||
others are optional. The intuitive parameters are converted to the transition
|
||||
probabilities of the 4-state Markov model. If the only parameter specified is
|
||||
ploss, it corresponds to the Bernoulli model while the optional parameters
|
||||
allow to extend the model to 2-state (burst_length), 3-state (density), and
|
||||
4-state (pisol). If the good_burst_length is not specified the hyphotesis of
|
||||
statistical independence for the losses within the burst will be used.
|
||||
|
||||
.B loss_4state
|
||||
p13 [p31 [p32 [p23 [p14]]]]
|
||||
|
||||
.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
|
||||
alone corresponds to the Bernoulli model. The optional parameters allows to
|
||||
@ -175,9 +85,7 @@ 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.
|
||||
|
||||
.B loss_gilb_ell
|
||||
p [r [1-h [1-k]]]
|
||||
|
||||
.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
|
||||
@ -188,76 +96,44 @@ 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.
|
||||
|
||||
.B loss_gilb_ell_4s
|
||||
p [r [1-h [1-k]]]
|
||||
|
||||
adds packet losses according to the Gilbert-Elliot-4s loss model. It is a
|
||||
particular version of the GI model which behaviour is very similar to the
|
||||
Gilbert-Elliot's. The input parameters are the same of the real Gilbert-Elliot
|
||||
model or its special cases. The transition probabilities and GI parameters that
|
||||
corresponds to the Gilbert-Elliot input parameters are calculated and, if the
|
||||
query mode is enabled, printed to screen. This option is included to study the
|
||||
correspondence between GI model and the models available in the literature, it
|
||||
has no practical use at the moment.
|
||||
|
||||
.B loss_pattern
|
||||
FILENAME [REPETITIONS]
|
||||
|
||||
adds packet losses according to a deterministic loss pattern. It reads from the
|
||||
text file FILENAME a sequence of "1" and "0" where "1" are the loss events and
|
||||
"0" are the regular transmission of packets . The parameter repetitions is
|
||||
optional and is the number of "replicas" of the loss pattern file. It is
|
||||
optional and by default is 0 which means infinite repetition of the loss
|
||||
pattern.
|
||||
|
||||
.B corrupt
|
||||
PERCENT [CORRELATION]]
|
||||
|
||||
.SS corrupt
|
||||
allows the emulate the 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.
|
||||
|
||||
.B duplicate
|
||||
PERCENT [CORRELATION]]
|
||||
|
||||
.SS duplicate
|
||||
using this option the chosen percent of packets is duplicated before queueing
|
||||
them. It is also possible to add a correlation through the proper parameter.
|
||||
|
||||
.B reorder
|
||||
PRECENT [CORRELATION] [ gap DISTANCE ]]
|
||||
|
||||
.SS reorder
|
||||
there are two ways to use this option:
|
||||
|
||||
.B reorder
|
||||
gap 5 10 ms
|
||||
|
||||
.B "reorder gap"
|
||||
.I 5 10
|
||||
.br
|
||||
in this first example every 5th (10th, 15th) packet is sent immediately while
|
||||
other packets are delayed by 10 ms
|
||||
|
||||
.B reorder
|
||||
25% 50%
|
||||
|
||||
.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.
|
||||
|
||||
.SH LIMITATIONS
|
||||
The main known limitation of Netem are related to timer granularity, since
|
||||
Linux is not a real-time operating system; to the choice of Pseudo-Random
|
||||
Number Generator (PRNG) and the original loss model.
|
||||
Linux is not a real-time operating system.
|
||||
|
||||
.SH SOURCES
|
||||
.TP
|
||||
o
|
||||
.IP " 1. " 4
|
||||
Hemminger S. , "Network Emulation with NetEm", Open Source Development Lab,
|
||||
April 2005
|
||||
(http://devresources.linux-foundation.org/shemminger/netem/LCA2005_paper.pdf)
|
||||
|
||||
.TP
|
||||
o
|
||||
.IP " 2. " 4
|
||||
Netem page from Linux foundation, (http://www.linuxfoundation.org/en/Net:Netem)
|
||||
|
||||
.TP
|
||||
o
|
||||
.IP " 3. " 4
|
||||
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
|
||||
@ -267,6 +143,6 @@ Linux kernel", available at http://netgroup.uniroma2.it/NetemCLG
|
||||
.BR tc-tbf (8)
|
||||
|
||||
.SH AUTHOR
|
||||
Netem was written by Stephen Hemminger at OSDL and is based on NISTnet. This
|
||||
manpage was created by Fabio Ludovici <fabio.ludovici at yahoo dot it> and
|
||||
Netem was written by Stephen Hemminger at Linux foundation and is based on NISTnet.
|
||||
This manpage was created by Fabio Ludovici <fabio.ludovici at yahoo dot it> and
|
||||
Hagen Paul Pfeifer <hagen@jauu.net>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user